1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PROGRAM ZBLAT3
2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Test program for the COMPLEX*16       Level 3 Blas.
4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  The program must be driven by a short data file. The first 14 records
6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  of the file are read using list-directed input, the last 9 records
7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  are read using the format ( A6, L2 ). An annotated example of a data
8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  file can be obtained by deleting the first 3 characters from the
9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  following 23 lines:
10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  'ZBLAT3.SUMM'     NAME OF SUMMARY OUTPUT FILE
11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  6                 UNIT NUMBER OF SUMMARY FILE
12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  'ZBLAT3.SNAP'     NAME OF SNAPSHOT OUTPUT FILE
13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -1                UNIT NUMBER OF SNAPSHOT FILE (NOT USED IF .LT. 0)
14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  F        LOGICAL FLAG, T TO REWIND SNAPSHOT FILE AFTER EACH RECORD.
15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  F        LOGICAL FLAG, T TO STOP ON FAILURES.
16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  T        LOGICAL FLAG, T TO TEST ERROR EXITS.
17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  16.0     THRESHOLD VALUE OF TEST RATIO
18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  6                 NUMBER OF VALUES OF N
19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  0 1 2 3 5 9       VALUES OF N
20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  3                 NUMBER OF VALUES OF ALPHA
21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  (0.0,0.0) (1.0,0.0) (0.7,-0.9)       VALUES OF ALPHA
22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  3                 NUMBER OF VALUES OF BETA
23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  (0.0,0.0) (1.0,0.0) (1.3,-1.1)       VALUES OF BETA
24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZGEMM  T PUT F FOR NO TEST. SAME COLUMNS.
25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZHEMM  T PUT F FOR NO TEST. SAME COLUMNS.
26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZSYMM  T PUT F FOR NO TEST. SAME COLUMNS.
27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZTRMM  T PUT F FOR NO TEST. SAME COLUMNS.
28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZTRSM  T PUT F FOR NO TEST. SAME COLUMNS.
29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZHERK  T PUT F FOR NO TEST. SAME COLUMNS.
30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZSYRK  T PUT F FOR NO TEST. SAME COLUMNS.
31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZHER2K T PUT F FOR NO TEST. SAME COLUMNS.
32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ZSYR2K T PUT F FOR NO TEST. SAME COLUMNS.
33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  See:
35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Dongarra J. J., Du Croz J. J., Duff I. S. and Hammarling S.
37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     A Set of Level 3 Basic Linear Algebra Subprograms.
38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Technical Memorandum No.88 (Revision 1), Mathematics and
40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Computer Science Division, Argonne National Laboratory, 9700
41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     South Cass Avenue, Argonne, Illinois 60439, US.
42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
45c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
46c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
47c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
48c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
49c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
50c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NIN
51c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( NIN = 5 )
52c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NSUBS
53c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( NSUBS = 9 )
54c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO, ONE
55c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ),
56c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   ONE = ( 1.0D0, 0.0D0 ) )
57c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RZERO, RHALF, RONE
58c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RZERO = 0.0D0, RHALF = 0.5D0, RONE = 1.0D0 )
59c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NMAX
60c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( NMAX = 65 )
61c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NIDMAX, NALMAX, NBEMAX
62c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( NIDMAX = 9, NALMAX = 7, NBEMAX = 7 )
63c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
64c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   EPS, ERR, THRESH
65c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, ISNUM, J, N, NALF, NBET, NIDIM, NOUT, NTRA
66c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            FATAL, LTESTT, REWI, SAME, SFATAL, TRACE,
67c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   TSTERR
68c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        TRANSA, TRANSB
69c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SNAMET
70c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*32       SNAPS, SUMMRY
71c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Arrays ..
72c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         AA( NMAX*NMAX ), AB( NMAX, 2*NMAX ),
73c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   ALF( NALMAX ), AS( NMAX*NMAX ),
74c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   BB( NMAX*NMAX ), BET( NBEMAX ),
75c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   BS( NMAX*NMAX ), C( NMAX, NMAX ),
76c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   CC( NMAX*NMAX ), CS( NMAX*NMAX ), CT( NMAX ),
77c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   W( 2*NMAX )
78c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   G( NMAX )
79c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            IDIM( NIDMAX )
80c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LTEST( NSUBS )
81c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SNAMES( NSUBS )
82c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Functions ..
83c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   DDIFF
84c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LZE
85c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           DDIFF, LZE
86c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Subroutines ..
87c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZCHK1, ZCHK2, ZCHK3, ZCHK4, ZCHK5, ZCHKE, ZMMCH
88c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
89c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          MAX, MIN
90c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
91c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUTC
92c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
93c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SRNAMT
94c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
95c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUTC, OK, LERR
96c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /SRNAMC/SRNAMT
97c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Data statements ..
98c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DATA               SNAMES/'ZGEMM ', 'ZHEMM ', 'ZSYMM ', 'ZTRMM ',
99c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   'ZTRSM ', 'ZHERK ', 'ZSYRK ', 'ZHER2K',
100c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   'ZSYR2K'/
101c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
102c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
103c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read name and unit number for summary output file and open file.
104c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
105c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )SUMMRY
106c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )NOUT
107c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      OPEN( NOUT, FILE = SUMMRY, STATUS = 'NEW' )
108c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NOUTC = NOUT
109c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
110c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read name and unit number for snapshot output file and open file.
111c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
112c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )SNAPS
113c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )NTRA
114c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRACE = NTRA.GE.0
115c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( TRACE )THEN
116c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         OPEN( NTRA, FILE = SNAPS, STATUS = 'NEW' )
117c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
118c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read the flag that directs rewinding of the snapshot file.
119c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )REWI
120c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      REWI = REWI.AND.TRACE
121c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read the flag that directs stopping on any failure.
122c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )SFATAL
123c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read the flag that indicates whether error exits are to be tested.
124c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )TSTERR
125c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read the threshold value of the test ratio
126c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )THRESH
127c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
128c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read and check the parameter values for the tests.
129c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
130c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Values of N
131c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )NIDIM
132c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( NIDIM.LT.1.OR.NIDIM.GT.NIDMAX )THEN
133c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )'N', NIDMAX
134c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         GO TO 220
135c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
136c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )( IDIM( I ), I = 1, NIDIM )
137c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 10 I = 1, NIDIM
138c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( IDIM( I ).LT.0.OR.IDIM( I ).GT.NMAX )THEN
139c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            WRITE( NOUT, FMT = 9996 )NMAX
140c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            GO TO 220
141c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         END IF
142c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10 CONTINUE
143c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Values of ALPHA
144c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )NALF
145c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( NALF.LT.1.OR.NALF.GT.NALMAX )THEN
146c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )'ALPHA', NALMAX
147c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         GO TO 220
148c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
149c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )( ALF( I ), I = 1, NALF )
150c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Values of BETA
151c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )NBET
152c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( NBET.LT.1.OR.NBET.GT.NBEMAX )THEN
153c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )'BETA', NBEMAX
154c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         GO TO 220
155c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
156c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      READ( NIN, FMT = * )( BET( I ), I = 1, NBET )
157c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
158c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Report values of parameters.
159c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
160c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9995 )
161c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9994 )( IDIM( I ), I = 1, NIDIM )
162c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9993 )( ALF( I ), I = 1, NALF )
163c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9992 )( BET( I ), I = 1, NBET )
164c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( .NOT.TSTERR )THEN
165c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = * )
166c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9984 )
167c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
168c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = * )
169c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9999 )THRESH
170c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = * )
171c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
172c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Read names of subroutines and flags which indicate
173c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     whether they are to be tested.
174c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
175c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 20 I = 1, NSUBS
176c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         LTEST( I ) = .FALSE.
177c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20 CONTINUE
178c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30 READ( NIN, FMT = 9988, END = 60 )SNAMET, LTESTT
179c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 40 I = 1, NSUBS
180c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( SNAMET.EQ.SNAMES( I ) )
181c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      GO TO 50
182c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40 CONTINUE
183c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9990 )SNAMET
184c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      STOP
185c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50 LTEST( I ) = LTESTT
186c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 30
187c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
188c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60 CONTINUE
189c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CLOSE ( NIN )
190c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
191c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Compute EPS (the machine precision).
192c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
193c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EPS = RONE
194c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70 CONTINUE
195c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( DDIFF( RONE + EPS, RONE ).EQ.RZERO )
196c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   GO TO 80
197c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EPS = RHALF*EPS
198c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 70
199c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80 CONTINUE
200c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EPS = EPS + EPS
201c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9998 )EPS
202c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
203c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Check the reliability of ZMMCH using exact data.
204c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
205c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      N = MIN( 32, NMAX )
206c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 100 J = 1, N
207c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 90 I = 1, N
208c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            AB( I, J ) = MAX( I - J + 1, 0 )
209c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90    CONTINUE
210c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         AB( J, NMAX + 1 ) = J
211c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         AB( 1, NMAX + J ) = J
212c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         C( J, 1 ) = ZERO
213c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100 CONTINUE
214c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 110 J = 1, N
215c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         CC( J ) = J*( ( J + 1 )*J )/2 - ( ( J + 1 )*J*( J - 1 ) )/3
216c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  110 CONTINUE
217c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     CC holds the exact result. On exit from ZMMCH CT holds
218c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     the result computed by ZMMCH.
219c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANSA = 'N'
220c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANSB = 'N'
221c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
222c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            AB( 1, NMAX + 1 ), NMAX, ZERO, C, NMAX, CT, G, CC,
223c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            NMAX, EPS, ERR, FATAL, NOUT, .TRUE. )
224c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SAME = LZE( CC, CT, N )
225c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
226c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
227c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         STOP
228c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
229c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANSB = 'C'
230c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
231c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            AB( 1, NMAX + 1 ), NMAX, ZERO, C, NMAX, CT, G, CC,
232c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            NMAX, EPS, ERR, FATAL, NOUT, .TRUE. )
233c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SAME = LZE( CC, CT, N )
234c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
235c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
236c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         STOP
237c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
238c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 120 J = 1, N
239c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         AB( J, NMAX + 1 ) = N - J + 1
240c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         AB( 1, NMAX + J ) = N - J + 1
241c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  120 CONTINUE
242c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 130 J = 1, N
243c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         CC( N - J + 1 ) = J*( ( J + 1 )*J )/2 -
244c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                     ( ( J + 1 )*J*( J - 1 ) )/3
245c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  130 CONTINUE
246c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANSA = 'C'
247c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANSB = 'N'
248c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
249c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            AB( 1, NMAX + 1 ), NMAX, ZERO, C, NMAX, CT, G, CC,
250c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            NMAX, EPS, ERR, FATAL, NOUT, .TRUE. )
251c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SAME = LZE( CC, CT, N )
252c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
253c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
254c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         STOP
255c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
256c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANSB = 'C'
257c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZMMCH( TRANSA, TRANSB, N, 1, N, ONE, AB, NMAX,
258c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            AB( 1, NMAX + 1 ), NMAX, ZERO, C, NMAX, CT, G, CC,
259c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            NMAX, EPS, ERR, FATAL, NOUT, .TRUE. )
260c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SAME = LZE( CC, CT, N )
261c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( .NOT.SAME.OR.ERR.NE.RZERO )THEN
262c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9989 )TRANSA, TRANSB, SAME, ERR
263c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         STOP
264c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
265c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
266c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Test each subroutine in turn.
267c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
268c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 200 ISNUM = 1, NSUBS
269c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = * )
270c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( .NOT.LTEST( ISNUM ) )THEN
271c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Subprogram is not to be tested.
272c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            WRITE( NOUT, FMT = 9987 )SNAMES( ISNUM )
273c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         ELSE
274c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            SRNAMT = SNAMES( ISNUM )
275c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Test error exits.
276c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( TSTERR )THEN
277c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               CALL ZCHKE( ISNUM, SNAMES( ISNUM ), NOUT )
278c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               WRITE( NOUT, FMT = * )
279c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
280c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Test computations.
281c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            INFOT = 0
282c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            OK = .TRUE.
283c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            FATAL = .FALSE.
284c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            GO TO ( 140, 150, 150, 160, 160, 170, 170,
285c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $              180, 180 )ISNUM
286c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Test ZGEMM, 01.
287c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  140       CALL ZCHK1( SNAMES( ISNUM ), EPS, THRESH, NOUT, NTRA, TRACE,
288c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  REWI, FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET,
289c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  NMAX, AB, AA, AS, AB( 1, NMAX + 1 ), BB, BS, C,
290c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  CC, CS, CT, G )
291c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            GO TO 190
292c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Test ZHEMM, 02, ZSYMM, 03.
293c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  150       CALL ZCHK2( SNAMES( ISNUM ), EPS, THRESH, NOUT, NTRA, TRACE,
294c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  REWI, FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET,
295c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  NMAX, AB, AA, AS, AB( 1, NMAX + 1 ), BB, BS, C,
296c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  CC, CS, CT, G )
297c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            GO TO 190
298c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Test ZTRMM, 04, ZTRSM, 05.
299c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  160       CALL ZCHK3( SNAMES( ISNUM ), EPS, THRESH, NOUT, NTRA, TRACE,
300c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  REWI, FATAL, NIDIM, IDIM, NALF, ALF, NMAX, AB,
301c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  AA, AS, AB( 1, NMAX + 1 ), BB, BS, CT, G, C )
302c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            GO TO 190
303c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Test ZHERK, 06, ZSYRK, 07.
304c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  170       CALL ZCHK4( SNAMES( ISNUM ), EPS, THRESH, NOUT, NTRA, TRACE,
305c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  REWI, FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET,
306c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  NMAX, AB, AA, AS, AB( 1, NMAX + 1 ), BB, BS, C,
307c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  CC, CS, CT, G )
308c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            GO TO 190
309c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Test ZHER2K, 08, ZSYR2K, 09.
310c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  180       CALL ZCHK5( SNAMES( ISNUM ), EPS, THRESH, NOUT, NTRA, TRACE,
311c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  REWI, FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET,
312c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  NMAX, AB, AA, AS, BB, BS, C, CC, CS, CT, G, W )
313c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            GO TO 190
314c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
315c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  190       IF( FATAL.AND.SFATAL )
316c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         GO TO 210
317c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         END IF
318c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  200 CONTINUE
319c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9986 )
320c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 230
321c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
322c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  210 CONTINUE
323c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9985 )
324c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 230
325c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
326c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  220 CONTINUE
327c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9991 )
328c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
329c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  230 CONTINUE
330c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( TRACE )
331c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   CLOSE ( NTRA )
332c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CLOSE ( NOUT )
333c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      STOP
334c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
335c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ROUTINES PASS COMPUTATIONAL TESTS IF TEST RATIO IS LES',
336c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'S THAN', F8.2 )
337c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' RELATIVE MACHINE PRECISION IS TAKEN TO BE', 1P, D9.1 )
338c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( ' NUMBER OF VALUES OF ', A, ' IS LESS THAN 1 OR GREATER ',
339c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'THAN ', I2 )
340c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9996 FORMAT( ' VALUE OF N IS LESS THAN 0 OR GREATER THAN ', I2 )
341c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9995 FORMAT( ' TESTS OF THE COMPLEX*16       LEVEL 3 BLAS', //' THE F',
342c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'OLLOWING PARAMETER VALUES WILL BE USED:' )
343c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9994 FORMAT( '   FOR N              ', 9I6 )
344c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9993 FORMAT( '   FOR ALPHA          ',
345c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      7( '(', F4.1, ',', F4.1, ')  ', : ) )
346c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9992 FORMAT( '   FOR BETA           ',
347c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      7( '(', F4.1, ',', F4.1, ')  ', : ) )
348c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9991 FORMAT( ' AMEND DATA FILE OR INCREASE ARRAY SIZES IN PROGRAM',
349c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      /' ******* TESTS ABANDONED *******' )
350c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9990 FORMAT( ' SUBPROGRAM NAME ', A6, ' NOT RECOGNIZED', /' ******* T',
351c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ESTS ABANDONED *******' )
352c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9989 FORMAT( ' ERROR IN ZMMCH -  IN-LINE DOT PRODUCTS ARE BEING EVALU',
353c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ATED WRONGLY.', /' ZMMCH WAS CALLED WITH TRANSA = ', A1,
354c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' AND TRANSB = ', A1, /' AND RETURNED SAME = ', L1, ' AND ',
355c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ERR = ', F12.3, '.', /' THIS MAY BE DUE TO FAULTS IN THE ',
356c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ARITHMETIC OR THE COMPILER.', /' ******* TESTS ABANDONED ',
357c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '*******' )
358c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9988 FORMAT( A6, L2 )
359c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9987 FORMAT( 1X, A6, ' WAS NOT TESTED' )
360c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9986 FORMAT( /' END OF TESTS' )
361c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9985 FORMAT( /' ******* FATAL ERROR - TESTS ABANDONED *******' )
362c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9984 FORMAT( ' ERROR-EXITS WILL NOT BE TESTED' )
363c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
364c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZBLAT3.
365c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
366c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
367c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
368c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
369c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
370c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
371c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests ZGEMM.
372c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
373c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
374c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
375c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
376c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
377c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
378c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
379c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
380c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
381c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
382c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO
383c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ) )
384c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RZERO
385c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RZERO = 0.0D0 )
386c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
387c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   EPS, THRESH
388c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NALF, NBET, NIDIM, NMAX, NOUT, NTRA
389c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            FATAL, REWI, TRACE
390c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SNAME
391c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
392c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
393c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   AS( NMAX*NMAX ), B( NMAX, NMAX ),
394c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   BB( NMAX*NMAX ), BET( NBET ), BS( NMAX*NMAX ),
395c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   C( NMAX, NMAX ), CC( NMAX*NMAX ),
396c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   CS( NMAX*NMAX ), CT( NMAX )
397c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   G( NMAX )
398c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            IDIM( NIDIM )
399c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
400c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ALPHA, ALS, BETA, BLS
401c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   ERR, ERRMAX
402c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IA, IB, ICA, ICB, IK, IM, IN, K, KS, LAA,
403c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   LBB, LCC, LDA, LDAS, LDB, LDBS, LDC, LDCS, M,
404c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   MA, MB, MS, N, NA, NARGS, NB, NC, NS
405c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            NULL, RESET, SAME, TRANA, TRANB
406c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        TRANAS, TRANBS, TRANSA, TRANSB
407c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*3        ICH
408c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Arrays ..
409c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            ISAME( 13 )
410c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Functions ..
411c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LZE, LZERES
412c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           LZE, LZERES
413c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Subroutines ..
414c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZGEMM, ZMAKE, ZMMCH
415c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
416c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          MAX
417c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
418c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUTC
419c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
420c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
421c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUTC, OK, LERR
422c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Data statements ..
423c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DATA               ICH/'NTC'/
424c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
425c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
426c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NARGS = 13
427c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NC = 0
428c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RESET = .TRUE.
429c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ERRMAX = RZERO
430c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
431c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 110 IM = 1, NIDIM
432c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         M = IDIM( IM )
433c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
434c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 100 IN = 1, NIDIM
435c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            N = IDIM( IN )
436c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Set LDC to 1 more than minimum value if room.
437c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LDC = M
438c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDC.LT.NMAX )
439c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         LDC = LDC + 1
440c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Skip tests if not enough room.
441c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDC.GT.NMAX )
442c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         GO TO 100
443c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LCC = LDC*N
444c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            NULL = N.LE.0.OR.M.LE.0
445c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
446c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 90 IK = 1, NIDIM
447c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               K = IDIM( IK )
448c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
449c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 80 ICA = 1, 3
450c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  TRANSA = ICH( ICA: ICA )
451c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  TRANA = TRANSA.EQ.'T'.OR.TRANSA.EQ.'C'
452c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
453c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IF( TRANA )THEN
454c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     MA = K
455c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     NA = M
456c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  ELSE
457c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     MA = M
458c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     NA = K
459c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  END IF
460c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                 Set LDA to 1 more than minimum value if room.
461c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  LDA = MA
462c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IF( LDA.LT.NMAX )
463c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $               LDA = LDA + 1
464c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                 Skip tests if not enough room.
465c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IF( LDA.GT.NMAX )
466c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $               GO TO 80
467c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  LAA = LDA*NA
468c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
469c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                 Generate the matrix A.
470c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
471c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  CALL ZMAKE( 'GE', ' ', ' ', MA, NA, A, NMAX, AA, LDA,
472c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        RESET, ZERO )
473c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
474c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 70 ICB = 1, 3
475c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     TRANSB = ICH( ICB: ICB )
476c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     TRANB = TRANSB.EQ.'T'.OR.TRANSB.EQ.'C'
477c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
478c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     IF( TRANB )THEN
479c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        MB = N
480c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NB = K
481c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     ELSE
482c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        MB = K
483c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NB = N
484c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     END IF
485c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                    Set LDB to 1 more than minimum value if room.
486c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     LDB = MB
487c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     IF( LDB.LT.NMAX )
488c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  LDB = LDB + 1
489c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                    Skip tests if not enough room.
490c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     IF( LDB.GT.NMAX )
491c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  GO TO 70
492c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     LBB = LDB*NB
493c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
494c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                    Generate the matrix B.
495c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
496c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     CALL ZMAKE( 'GE', ' ', ' ', MB, NB, B, NMAX, BB,
497c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           LDB, RESET, ZERO )
498c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
499c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 60 IA = 1, NALF
500c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ALPHA = ALF( IA )
501c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
502c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 50 IB = 1, NBET
503c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BETA = BET( IB )
504c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
505c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Generate the matrix C.
506c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
507c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZMAKE( 'GE', ' ', ' ', M, N, C, NMAX,
508c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 CC, LDC, RESET, ZERO )
509c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
510c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           NC = NC + 1
511c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
512c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Save every datum before calling the
513c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          subroutine.
514c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
515c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           TRANAS = TRANSA
516c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           TRANBS = TRANSB
517c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           MS = M
518c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           NS = N
519c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           KS = K
520c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ALS = ALPHA
521c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 10 I = 1, LAA
522c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              AS( I ) = AA( I )
523c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10                      CONTINUE
524c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           LDAS = LDA
525c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 20 I = 1, LBB
526c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              BS( I ) = BB( I )
527c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20                      CONTINUE
528c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           LDBS = LDB
529c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BLS = BETA
530c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 30 I = 1, LCC
531c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              CS( I ) = CC( I )
532c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30                      CONTINUE
533c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           LDCS = LDC
534c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
535c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Call the subroutine.
536c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
537c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( TRACE )
538c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NTRA, FMT = 9995 )NC, SNAME,
539c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        TRANSA, TRANSB, M, N, K, ALPHA, LDA, LDB,
540c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        BETA, LDC
541c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( REWI )
542c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        REWIND NTRA
543c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZGEMM( TRANSA, TRANSB, M, N, K, ALPHA,
544c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 AA, LDA, BB, LDB, BETA, CC, LDC )
545c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
546c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Check if error-exit was taken incorrectly.
547c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
548c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.OK )THEN
549c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              WRITE( NOUT, FMT = 9994 )
550c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              FATAL = .TRUE.
551c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              GO TO 120
552c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
553c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
554c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          See what data changed inside subroutines.
555c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
556c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 1 ) = TRANSA.EQ.TRANAS
557c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 2 ) = TRANSB.EQ.TRANBS
558c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 3 ) = MS.EQ.M
559c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 4 ) = NS.EQ.N
560c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 5 ) = KS.EQ.K
561c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 6 ) = ALS.EQ.ALPHA
562c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 7 ) = LZE( AS, AA, LAA )
563c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 8 ) = LDAS.EQ.LDA
564c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 9 ) = LZE( BS, BB, LBB )
565c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 10 ) = LDBS.EQ.LDB
566c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 11 ) = BLS.EQ.BETA
567c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( NULL )THEN
568c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ISAME( 12 ) = LZE( CS, CC, LCC )
569c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ELSE
570c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ISAME( 12 ) = LZERES( 'GE', ' ', M, N, CS,
571c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                      CC, LDC )
572c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
573c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 13 ) = LDCS.EQ.LDC
574c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
575c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          If data was incorrectly changed, report
576c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          and return.
577c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
578c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           SAME = .TRUE.
579c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 40 I = 1, NARGS
580c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              SAME = SAME.AND.ISAME( I )
581c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( .NOT.ISAME( I ) )
582c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           WRITE( NOUT, FMT = 9998 )I
583c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40                      CONTINUE
584c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.SAME )THEN
585c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              FATAL = .TRUE.
586c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              GO TO 120
587c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
588c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
589c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.NULL )THEN
590c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
591c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             Check the result.
592c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
593c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              CALL ZMMCH( TRANSA, TRANSB, M, N, K,
594c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    ALPHA, A, NMAX, B, NMAX, BETA,
595c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    C, NMAX, CT, G, CC, LDC, EPS,
596c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    ERR, FATAL, NOUT, .TRUE. )
597c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ERRMAX = MAX( ERRMAX, ERR )
598c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             If got really bad answer, report and
599c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             return.
600c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( FATAL )
601c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           GO TO 120
602c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
603c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
604c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50                   CONTINUE
605c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
606c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60                CONTINUE
607c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
608c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70             CONTINUE
609c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
610c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80          CONTINUE
611c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
612c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90       CONTINUE
613c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
614c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100    CONTINUE
615c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
616c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  110 CONTINUE
617c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
618c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Report result.
619c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
620c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( ERRMAX.LT.THRESH )THEN
621c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9999 )SNAME, NC
622c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
623c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )SNAME, NC, ERRMAX
624c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
625c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 130
626c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
627c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  120 CONTINUE
628c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9996 )SNAME
629c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9995 )NC, SNAME, TRANSA, TRANSB, M, N, K,
630c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   ALPHA, LDA, LDB, BETA, LDC
631c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
632c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  130 CONTINUE
633c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
634c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
635c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ', A6, ' PASSED THE COMPUTATIONAL TESTS (', I6, ' CALL',
636c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'S)' )
637c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' ******* FATAL ERROR - PARAMETER NUMBER ', I2, ' WAS CH',
638c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ANGED INCORRECTLY *******' )
639c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( ' ', A6, ' COMPLETED THE COMPUTATIONAL TESTS (', I6, ' C',
640c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ALLS)', /' ******* BUT WITH MAXIMUM TEST RATIO', F8.2,
641c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' - SUSPECT *******' )
642c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9996 FORMAT( ' ******* ', A6, ' FAILED ON CALL NUMBER:' )
643c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9995 FORMAT( 1X, I6, ': ', A6, '(''', A1, ''',''', A1, ''',',
644c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      3( I3, ',' ), '(', F4.1, ',', F4.1, '), A,', I3, ', B,', I3,
645c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ',(', F4.1, ',', F4.1, '), C,', I3, ').' )
646c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9994 FORMAT( ' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
647c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '******' )
648c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
649c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZCHK1.
650c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
651c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
652c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZCHK2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
653c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
654c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
655c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
656c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests ZHEMM and ZSYMM.
657c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
658c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
659c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
660c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
661c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
662c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
663c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
664c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
665c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
666c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
667c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO
668c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ) )
669c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RZERO
670c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RZERO = 0.0D0 )
671c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
672c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   EPS, THRESH
673c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NALF, NBET, NIDIM, NMAX, NOUT, NTRA
674c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            FATAL, REWI, TRACE
675c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SNAME
676c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
677c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
678c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   AS( NMAX*NMAX ), B( NMAX, NMAX ),
679c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   BB( NMAX*NMAX ), BET( NBET ), BS( NMAX*NMAX ),
680c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   C( NMAX, NMAX ), CC( NMAX*NMAX ),
681c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   CS( NMAX*NMAX ), CT( NMAX )
682c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   G( NMAX )
683c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            IDIM( NIDIM )
684c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
685c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ALPHA, ALS, BETA, BLS
686c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   ERR, ERRMAX
687c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IA, IB, ICS, ICU, IM, IN, LAA, LBB, LCC,
688c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   LDA, LDAS, LDB, LDBS, LDC, LDCS, M, MS, N, NA,
689c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   NARGS, NC, NS
690c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            CONJ, LEFT, NULL, RESET, SAME
691c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        SIDE, SIDES, UPLO, UPLOS
692c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*2        ICHS, ICHU
693c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Arrays ..
694c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            ISAME( 13 )
695c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Functions ..
696c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LZE, LZERES
697c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           LZE, LZERES
698c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Subroutines ..
699c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZHEMM, ZMAKE, ZMMCH, ZSYMM
700c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
701c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          MAX
702c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
703c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUTC
704c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
705c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
706c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUTC, OK, LERR
707c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Data statements ..
708c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DATA               ICHS/'LR'/, ICHU/'UL'/
709c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
710c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CONJ = SNAME( 2: 3 ).EQ.'HE'
711c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
712c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NARGS = 12
713c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NC = 0
714c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RESET = .TRUE.
715c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ERRMAX = RZERO
716c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
717c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 100 IM = 1, NIDIM
718c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         M = IDIM( IM )
719c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
720c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 90 IN = 1, NIDIM
721c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            N = IDIM( IN )
722c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Set LDC to 1 more than minimum value if room.
723c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LDC = M
724c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDC.LT.NMAX )
725c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         LDC = LDC + 1
726c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Skip tests if not enough room.
727c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDC.GT.NMAX )
728c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         GO TO 90
729c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LCC = LDC*N
730c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            NULL = N.LE.0.OR.M.LE.0
731c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Set LDB to 1 more than minimum value if room.
732c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LDB = M
733c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDB.LT.NMAX )
734c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         LDB = LDB + 1
735c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Skip tests if not enough room.
736c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDB.GT.NMAX )
737c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         GO TO 90
738c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LBB = LDB*N
739c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
740c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Generate the matrix B.
741c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
742c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            CALL ZMAKE( 'GE', ' ', ' ', M, N, B, NMAX, BB, LDB, RESET,
743c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  ZERO )
744c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
745c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 80 ICS = 1, 2
746c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               SIDE = ICHS( ICS: ICS )
747c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LEFT = SIDE.EQ.'L'
748c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
749c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LEFT )THEN
750c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = M
751c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
752c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = N
753c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
754c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Set LDA to 1 more than minimum value if room.
755c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LDA = NA
756c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.LT.NMAX )
757c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            LDA = LDA + 1
758c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Skip tests if not enough room.
759c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.GT.NMAX )
760c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            GO TO 80
761c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LAA = LDA*NA
762c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
763c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 70 ICU = 1, 2
764c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  UPLO = ICHU( ICU: ICU )
765c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
766c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                 Generate the hermitian or symmetric matrix A.
767c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
768c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  CALL ZMAKE( SNAME( 2: 3 ), UPLO, ' ', NA, NA, A, NMAX,
769c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        AA, LDA, RESET, ZERO )
770c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
771c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 60 IA = 1, NALF
772c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     ALPHA = ALF( IA )
773c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
774c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 50 IB = 1, NBET
775c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        BETA = BET( IB )
776c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
777c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Generate the matrix C.
778c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
779c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        CALL ZMAKE( 'GE', ' ', ' ', M, N, C, NMAX, CC,
780c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                              LDC, RESET, ZERO )
781c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
782c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NC = NC + 1
783c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
784c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Save every datum before calling the
785c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       subroutine.
786c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
787c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        SIDES = SIDE
788c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        UPLOS = UPLO
789c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        MS = M
790c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NS = N
791c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ALS = ALPHA
792c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 10 I = 1, LAA
793c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           AS( I ) = AA( I )
794c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10                   CONTINUE
795c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDAS = LDA
796c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 20 I = 1, LBB
797c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BS( I ) = BB( I )
798c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20                   CONTINUE
799c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDBS = LDB
800c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        BLS = BETA
801c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 30 I = 1, LCC
802c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CS( I ) = CC( I )
803c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30                   CONTINUE
804c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDCS = LDC
805c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
806c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Call the subroutine.
807c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
808c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( TRACE )
809c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                     WRITE( NTRA, FMT = 9995 )NC, SNAME, SIDE,
810c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                     UPLO, M, N, ALPHA, LDA, LDB, BETA, LDC
811c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( REWI )
812c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                     REWIND NTRA
813c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
814c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZHEMM( SIDE, UPLO, M, N, ALPHA, AA, LDA,
815c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 BB, LDB, BETA, CC, LDC )
816c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
817c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZSYMM( SIDE, UPLO, M, N, ALPHA, AA, LDA,
818c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 BB, LDB, BETA, CC, LDC )
819c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
820c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
821c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Check if error-exit was taken incorrectly.
822c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
823c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.OK )THEN
824c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           WRITE( NOUT, FMT = 9994 )
825c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           FATAL = .TRUE.
826c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           GO TO 110
827c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
828c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
829c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       See what data changed inside subroutines.
830c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
831c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 1 ) = SIDES.EQ.SIDE
832c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 2 ) = UPLOS.EQ.UPLO
833c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 3 ) = MS.EQ.M
834c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 4 ) = NS.EQ.N
835c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 5 ) = ALS.EQ.ALPHA
836c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 6 ) = LZE( AS, AA, LAA )
837c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 7 ) = LDAS.EQ.LDA
838c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 8 ) = LZE( BS, BB, LBB )
839c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 9 ) = LDBS.EQ.LDB
840c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 10 ) = BLS.EQ.BETA
841c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( NULL )THEN
842c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 11 ) = LZE( CS, CC, LCC )
843c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
844c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 11 ) = LZERES( 'GE', ' ', M, N, CS,
845c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                   CC, LDC )
846c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
847c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 12 ) = LDCS.EQ.LDC
848c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
849c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       If data was incorrectly changed, report and
850c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       return.
851c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
852c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        SAME = .TRUE.
853c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 40 I = 1, NARGS
854c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           SAME = SAME.AND.ISAME( I )
855c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.ISAME( I ) )
856c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NOUT, FMT = 9998 )I
857c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40                   CONTINUE
858c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.SAME )THEN
859c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           FATAL = .TRUE.
860c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           GO TO 110
861c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
862c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
863c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.NULL )THEN
864c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
865c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Check the result.
866c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
867c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( LEFT )THEN
868c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              CALL ZMMCH( 'N', 'N', M, N, M, ALPHA, A,
869c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    NMAX, B, NMAX, BETA, C, NMAX,
870c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    CT, G, CC, LDC, EPS, ERR,
871c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    FATAL, NOUT, .TRUE. )
872c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ELSE
873c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              CALL ZMMCH( 'N', 'N', M, N, N, ALPHA, B,
874c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    NMAX, A, NMAX, BETA, C, NMAX,
875c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    CT, G, CC, LDC, EPS, ERR,
876c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    FATAL, NOUT, .TRUE. )
877c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
878c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ERRMAX = MAX( ERRMAX, ERR )
879c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          If got really bad answer, report and
880c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          return.
881c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( FATAL )
882c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        GO TO 110
883c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
884c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
885c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50                CONTINUE
886c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
887c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60             CONTINUE
888c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
889c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70          CONTINUE
890c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
891c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80       CONTINUE
892c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
893c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90    CONTINUE
894c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
895c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100 CONTINUE
896c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
897c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Report result.
898c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
899c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( ERRMAX.LT.THRESH )THEN
900c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9999 )SNAME, NC
901c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
902c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )SNAME, NC, ERRMAX
903c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
904c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 120
905c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
906c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  110 CONTINUE
907c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9996 )SNAME
908c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9995 )NC, SNAME, SIDE, UPLO, M, N, ALPHA, LDA,
909c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   LDB, BETA, LDC
910c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
911c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  120 CONTINUE
912c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
913c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
914c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ', A6, ' PASSED THE COMPUTATIONAL TESTS (', I6, ' CALL',
915c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'S)' )
916c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' ******* FATAL ERROR - PARAMETER NUMBER ', I2, ' WAS CH',
917c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ANGED INCORRECTLY *******' )
918c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( ' ', A6, ' COMPLETED THE COMPUTATIONAL TESTS (', I6, ' C',
919c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ALLS)', /' ******* BUT WITH MAXIMUM TEST RATIO', F8.2,
920c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' - SUSPECT *******' )
921c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9996 FORMAT( ' ******* ', A6, ' FAILED ON CALL NUMBER:' )
922c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9995 FORMAT( 1X, I6, ': ', A6, '(', 2( '''', A1, ''',' ), 2( I3, ',' ),
923c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '(', F4.1, ',', F4.1, '), A,', I3, ', B,', I3, ',(', F4.1,
924c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ',', F4.1, '), C,', I3, ')    .' )
925c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9994 FORMAT( ' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
926c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '******' )
927c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
928c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZCHK2.
929c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
930c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
931c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZCHK3( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
932c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  FATAL, NIDIM, IDIM, NALF, ALF, NMAX, A, AA, AS,
933c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  B, BB, BS, CT, G, C )
934c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
935c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests ZTRMM and ZTRSM.
936c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
937c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
938c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
939c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
940c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
941c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
942c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
943c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
944c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
945c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
946c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO, ONE
947c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ),
948c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   ONE = ( 1.0D0, 0.0D0 ) )
949c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RZERO
950c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RZERO = 0.0D0 )
951c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
952c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   EPS, THRESH
953c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NALF, NIDIM, NMAX, NOUT, NTRA
954c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            FATAL, REWI, TRACE
955c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SNAME
956c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
957c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
958c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   AS( NMAX*NMAX ), B( NMAX, NMAX ),
959c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   BB( NMAX*NMAX ), BS( NMAX*NMAX ),
960c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   C( NMAX, NMAX ), CT( NMAX )
961c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   G( NMAX )
962c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            IDIM( NIDIM )
963c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
964c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ALPHA, ALS
965c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   ERR, ERRMAX
966c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IA, ICD, ICS, ICT, ICU, IM, IN, J, LAA, LBB,
967c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   LDA, LDAS, LDB, LDBS, M, MS, N, NA, NARGS, NC,
968c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   NS
969c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LEFT, NULL, RESET, SAME
970c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        DIAG, DIAGS, SIDE, SIDES, TRANAS, TRANSA, UPLO,
971c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   UPLOS
972c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*2        ICHD, ICHS, ICHU
973c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*3        ICHT
974c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Arrays ..
975c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            ISAME( 13 )
976c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Functions ..
977c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LZE, LZERES
978c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           LZE, LZERES
979c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Subroutines ..
980c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZMAKE, ZMMCH, ZTRMM, ZTRSM
981c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
982c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          MAX
983c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
984c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUTC
985c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
986c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
987c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUTC, OK, LERR
988c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Data statements ..
989c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DATA               ICHU/'UL'/, ICHT/'NTC'/, ICHD/'UN'/, ICHS/'LR'/
990c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
991c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
992c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NARGS = 11
993c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NC = 0
994c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RESET = .TRUE.
995c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ERRMAX = RZERO
996c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Set up zero matrix for ZMMCH.
997c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 20 J = 1, NMAX
998c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 10 I = 1, NMAX
999c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            C( I, J ) = ZERO
1000c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10    CONTINUE
1001c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20 CONTINUE
1002c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1003c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 140 IM = 1, NIDIM
1004c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         M = IDIM( IM )
1005c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1006c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 130 IN = 1, NIDIM
1007c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            N = IDIM( IN )
1008c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Set LDB to 1 more than minimum value if room.
1009c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LDB = M
1010c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDB.LT.NMAX )
1011c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         LDB = LDB + 1
1012c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*           Skip tests if not enough room.
1013c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( LDB.GT.NMAX )
1014c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         GO TO 130
1015c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            LBB = LDB*N
1016c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            NULL = M.LE.0.OR.N.LE.0
1017c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1018c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 120 ICS = 1, 2
1019c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               SIDE = ICHS( ICS: ICS )
1020c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LEFT = SIDE.EQ.'L'
1021c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LEFT )THEN
1022c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = M
1023c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
1024c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = N
1025c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
1026c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Set LDA to 1 more than minimum value if room.
1027c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LDA = NA
1028c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.LT.NMAX )
1029c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            LDA = LDA + 1
1030c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Skip tests if not enough room.
1031c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.GT.NMAX )
1032c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            GO TO 130
1033c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LAA = LDA*NA
1034c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1035c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 110 ICU = 1, 2
1036c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  UPLO = ICHU( ICU: ICU )
1037c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1038c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 100 ICT = 1, 3
1039c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     TRANSA = ICHT( ICT: ICT )
1040c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1041c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 90 ICD = 1, 2
1042c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DIAG = ICHD( ICD: ICD )
1043c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1044c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 80 IA = 1, NALF
1045c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ALPHA = ALF( IA )
1046c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1047c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Generate the matrix A.
1048c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1049c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZMAKE( 'TR', UPLO, DIAG, NA, NA, A,
1050c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 NMAX, AA, LDA, RESET, ZERO )
1051c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1052c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Generate the matrix B.
1053c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1054c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZMAKE( 'GE', ' ', ' ', M, N, B, NMAX,
1055c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 BB, LDB, RESET, ZERO )
1056c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1057c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           NC = NC + 1
1058c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1059c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Save every datum before calling the
1060c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          subroutine.
1061c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1062c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           SIDES = SIDE
1063c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           UPLOS = UPLO
1064c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           TRANAS = TRANSA
1065c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DIAGS = DIAG
1066c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           MS = M
1067c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           NS = N
1068c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ALS = ALPHA
1069c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 30 I = 1, LAA
1070c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              AS( I ) = AA( I )
1071c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30                      CONTINUE
1072c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           LDAS = LDA
1073c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 40 I = 1, LBB
1074c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              BS( I ) = BB( I )
1075c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40                      CONTINUE
1076c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           LDBS = LDB
1077c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1078c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Call the subroutine.
1079c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1080c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( SNAME( 4: 5 ).EQ.'MM' )THEN
1081c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( TRACE )
1082c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           WRITE( NTRA, FMT = 9995 )NC, SNAME,
1083c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA,
1084c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           LDA, LDB
1085c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( REWI )
1086c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           REWIND NTRA
1087c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              CALL ZTRMM( SIDE, UPLO, TRANSA, DIAG, M,
1088c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    N, ALPHA, AA, LDA, BB, LDB )
1089c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ELSE IF( SNAME( 4: 5 ).EQ.'SM' )THEN
1090c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( TRACE )
1091c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           WRITE( NTRA, FMT = 9995 )NC, SNAME,
1092c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA,
1093c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           LDA, LDB
1094c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( REWI )
1095c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           REWIND NTRA
1096c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              CALL ZTRSM( SIDE, UPLO, TRANSA, DIAG, M,
1097c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    N, ALPHA, AA, LDA, BB, LDB )
1098c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
1099c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1100c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Check if error-exit was taken incorrectly.
1101c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1102c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.OK )THEN
1103c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              WRITE( NOUT, FMT = 9994 )
1104c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              FATAL = .TRUE.
1105c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              GO TO 150
1106c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
1107c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1108c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          See what data changed inside subroutines.
1109c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1110c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 1 ) = SIDES.EQ.SIDE
1111c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 2 ) = UPLOS.EQ.UPLO
1112c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 3 ) = TRANAS.EQ.TRANSA
1113c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 4 ) = DIAGS.EQ.DIAG
1114c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 5 ) = MS.EQ.M
1115c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 6 ) = NS.EQ.N
1116c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 7 ) = ALS.EQ.ALPHA
1117c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 8 ) = LZE( AS, AA, LAA )
1118c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 9 ) = LDAS.EQ.LDA
1119c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( NULL )THEN
1120c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ISAME( 10 ) = LZE( BS, BB, LBB )
1121c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ELSE
1122c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ISAME( 10 ) = LZERES( 'GE', ' ', M, N, BS,
1123c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                      BB, LDB )
1124c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
1125c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 11 ) = LDBS.EQ.LDB
1126c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1127c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          If data was incorrectly changed, report and
1128c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          return.
1129c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1130c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           SAME = .TRUE.
1131c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 50 I = 1, NARGS
1132c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              SAME = SAME.AND.ISAME( I )
1133c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( .NOT.ISAME( I ) )
1134c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           WRITE( NOUT, FMT = 9998 )I
1135c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50                      CONTINUE
1136c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.SAME )THEN
1137c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              FATAL = .TRUE.
1138c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              GO TO 150
1139c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
1140c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1141c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.NULL )THEN
1142c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( SNAME( 4: 5 ).EQ.'MM' )THEN
1143c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1144c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                                Check the result.
1145c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1146c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 IF( LEFT )THEN
1147c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    CALL ZMMCH( TRANSA, 'N', M, N, M,
1148c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ALPHA, A, NMAX, B, NMAX,
1149c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ZERO, C, NMAX, CT, G,
1150c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          BB, LDB, EPS, ERR,
1151c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          FATAL, NOUT, .TRUE. )
1152c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 ELSE
1153c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    CALL ZMMCH( 'N', TRANSA, M, N, N,
1154c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ALPHA, B, NMAX, A, NMAX,
1155c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ZERO, C, NMAX, CT, G,
1156c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          BB, LDB, EPS, ERR,
1157c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          FATAL, NOUT, .TRUE. )
1158c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 END IF
1159c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ELSE IF( SNAME( 4: 5 ).EQ.'SM' )THEN
1160c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1161c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                                Compute approximation to original
1162c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                                matrix.
1163c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1164c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 DO 70 J = 1, N
1165c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    DO 60 I = 1, M
1166c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       C( I, J ) = BB( I + ( J - 1 )*
1167c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                             LDB )
1168c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       BB( I + ( J - 1 )*LDB ) = ALPHA*
1169c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                    B( I, J )
1170c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60                               CONTINUE
1171c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70                            CONTINUE
1172c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1173c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 IF( LEFT )THEN
1174c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    CALL ZMMCH( TRANSA, 'N', M, N, M,
1175c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ONE, A, NMAX, C, NMAX,
1176c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ZERO, B, NMAX, CT, G,
1177c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          BB, LDB, EPS, ERR,
1178c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          FATAL, NOUT, .FALSE. )
1179c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 ELSE
1180c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    CALL ZMMCH( 'N', TRANSA, M, N, N,
1181c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ONE, C, NMAX, A, NMAX,
1182c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          ZERO, B, NMAX, CT, G,
1183c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          BB, LDB, EPS, ERR,
1184c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          FATAL, NOUT, .FALSE. )
1185c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 END IF
1186c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              END IF
1187c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ERRMAX = MAX( ERRMAX, ERR )
1188c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             If got really bad answer, report and
1189c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             return.
1190c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( FATAL )
1191c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           GO TO 150
1192c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
1193c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1194c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80                   CONTINUE
1195c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1196c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90                CONTINUE
1197c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1198c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100             CONTINUE
1199c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1200c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  110          CONTINUE
1201c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1202c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  120       CONTINUE
1203c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1204c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  130    CONTINUE
1205c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1206c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  140 CONTINUE
1207c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1208c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Report result.
1209c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1210c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( ERRMAX.LT.THRESH )THEN
1211c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9999 )SNAME, NC
1212c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
1213c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )SNAME, NC, ERRMAX
1214c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
1215c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 160
1216c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1217c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  150 CONTINUE
1218c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9996 )SNAME
1219c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9995 )NC, SNAME, SIDE, UPLO, TRANSA, DIAG, M,
1220c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   N, ALPHA, LDA, LDB
1221c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1222c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  160 CONTINUE
1223c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
1224c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1225c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ', A6, ' PASSED THE COMPUTATIONAL TESTS (', I6, ' CALL',
1226c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'S)' )
1227c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' ******* FATAL ERROR - PARAMETER NUMBER ', I2, ' WAS CH',
1228c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ANGED INCORRECTLY *******' )
1229c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( ' ', A6, ' COMPLETED THE COMPUTATIONAL TESTS (', I6, ' C',
1230c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ALLS)', /' ******* BUT WITH MAXIMUM TEST RATIO', F8.2,
1231c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' - SUSPECT *******' )
1232c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9996 FORMAT( ' ******* ', A6, ' FAILED ON CALL NUMBER:' )
1233c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9995 FORMAT( 1X, I6, ': ', A6, '(', 4( '''', A1, ''',' ), 2( I3, ',' ),
1234c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '(', F4.1, ',', F4.1, '), A,', I3, ', B,', I3, ')         ',
1235c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '      .' )
1236c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9994 FORMAT( ' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1237c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '******' )
1238c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1239c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZCHK3.
1240c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1241c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
1242c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZCHK4( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1243c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
1244c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
1245c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1246c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests ZHERK and ZSYRK.
1247c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1248c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
1249c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1250c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
1251c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
1252c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
1253c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
1254c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
1255c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1256c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
1257c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO
1258c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ) )
1259c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RONE, RZERO
1260c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RONE = 1.0D0, RZERO = 0.0D0 )
1261c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
1262c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   EPS, THRESH
1263c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1264c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            FATAL, REWI, TRACE
1265c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SNAME
1266c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
1267c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1268c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   AS( NMAX*NMAX ), B( NMAX, NMAX ),
1269c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   BB( NMAX*NMAX ), BET( NBET ), BS( NMAX*NMAX ),
1270c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   C( NMAX, NMAX ), CC( NMAX*NMAX ),
1271c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   CS( NMAX*NMAX ), CT( NMAX )
1272c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   G( NMAX )
1273c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            IDIM( NIDIM )
1274c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
1275c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ALPHA, ALS, BETA, BETS
1276c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   ERR, ERRMAX, RALPHA, RALS, RBETA, RBETS
1277c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, K, KS,
1278c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   LAA, LCC, LDA, LDAS, LDC, LDCS, LJ, MA, N, NA,
1279c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   NARGS, NC, NS
1280c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            CONJ, NULL, RESET, SAME, TRAN, UPPER
1281c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        TRANS, TRANSS, TRANST, UPLO, UPLOS
1282c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*2        ICHT, ICHU
1283c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Arrays ..
1284c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            ISAME( 13 )
1285c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Functions ..
1286c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LZE, LZERES
1287c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           LZE, LZERES
1288c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Subroutines ..
1289c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZHERK, ZMAKE, ZMMCH, ZSYRK
1290c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
1291c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          DCMPLX, MAX, DBLE
1292c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
1293c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUTC
1294c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
1295c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
1296c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUTC, OK, LERR
1297c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Data statements ..
1298c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DATA               ICHT/'NC'/, ICHU/'UL'/
1299c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
1300c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CONJ = SNAME( 2: 3 ).EQ.'HE'
1301c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1302c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NARGS = 10
1303c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NC = 0
1304c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RESET = .TRUE.
1305c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ERRMAX = RZERO
1306c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1307c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 100 IN = 1, NIDIM
1308c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         N = IDIM( IN )
1309c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*        Set LDC to 1 more than minimum value if room.
1310c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         LDC = N
1311c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( LDC.LT.NMAX )
1312c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      LDC = LDC + 1
1313c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*        Skip tests if not enough room.
1314c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( LDC.GT.NMAX )
1315c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      GO TO 100
1316c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         LCC = LDC*N
1317c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1318c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 90 IK = 1, NIDIM
1319c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            K = IDIM( IK )
1320c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1321c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 80 ICT = 1, 2
1322c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               TRANS = ICHT( ICT: ICT )
1323c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               TRAN = TRANS.EQ.'C'
1324c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( TRAN.AND..NOT.CONJ )
1325c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            TRANS = 'T'
1326c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( TRAN )THEN
1327c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  MA = K
1328c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = N
1329c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
1330c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  MA = N
1331c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = K
1332c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
1333c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Set LDA to 1 more than minimum value if room.
1334c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LDA = MA
1335c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.LT.NMAX )
1336c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            LDA = LDA + 1
1337c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Skip tests if not enough room.
1338c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.GT.NMAX )
1339c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            GO TO 80
1340c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LAA = LDA*NA
1341c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1342c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Generate the matrix A.
1343c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1344c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               CALL ZMAKE( 'GE', ' ', ' ', MA, NA, A, NMAX, AA, LDA,
1345c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                     RESET, ZERO )
1346c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1347c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 70 ICU = 1, 2
1348c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  UPLO = ICHU( ICU: ICU )
1349c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  UPPER = UPLO.EQ.'U'
1350c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1351c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 60 IA = 1, NALF
1352c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     ALPHA = ALF( IA )
1353c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     IF( CONJ )THEN
1354c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        RALPHA = DBLE( ALPHA )
1355c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ALPHA = DCMPLX( RALPHA, RZERO )
1356c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     END IF
1357c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1358c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 50 IB = 1, NBET
1359c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        BETA = BET( IB )
1360c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1361c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           RBETA = DBLE( BETA )
1362c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BETA = DCMPLX( RBETA, RZERO )
1363c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1364c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NULL = N.LE.0
1365c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )
1366c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                     NULL = NULL.OR.( ( K.LE.0.OR.RALPHA.EQ.
1367c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                            RZERO ).AND.RBETA.EQ.RONE )
1368c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1369c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Generate the matrix C.
1370c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1371c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        CALL ZMAKE( SNAME( 2: 3 ), UPLO, ' ', N, N, C,
1372c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                              NMAX, CC, LDC, RESET, ZERO )
1373c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1374c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NC = NC + 1
1375c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1376c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Save every datum before calling the subroutine.
1377c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1378c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        UPLOS = UPLO
1379c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        TRANSS = TRANS
1380c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NS = N
1381c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        KS = K
1382c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1383c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           RALS = RALPHA
1384c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1385c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ALS = ALPHA
1386c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1387c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 10 I = 1, LAA
1388c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           AS( I ) = AA( I )
1389c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10                   CONTINUE
1390c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDAS = LDA
1391c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1392c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           RBETS = RBETA
1393c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1394c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BETS = BETA
1395c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1396c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 20 I = 1, LCC
1397c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CS( I ) = CC( I )
1398c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20                   CONTINUE
1399c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDCS = LDC
1400c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1401c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Call the subroutine.
1402c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1403c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1404c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( TRACE )
1405c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NTRA, FMT = 9994 )NC, SNAME, UPLO,
1406c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        TRANS, N, K, RALPHA, LDA, RBETA, LDC
1407c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( REWI )
1408c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        REWIND NTRA
1409c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZHERK( UPLO, TRANS, N, K, RALPHA, AA,
1410c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 LDA, RBETA, CC, LDC )
1411c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1412c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( TRACE )
1413c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NTRA, FMT = 9993 )NC, SNAME, UPLO,
1414c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        TRANS, N, K, ALPHA, LDA, BETA, LDC
1415c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( REWI )
1416c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        REWIND NTRA
1417c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZSYRK( UPLO, TRANS, N, K, ALPHA, AA,
1418c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                 LDA, BETA, CC, LDC )
1419c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1420c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1421c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Check if error-exit was taken incorrectly.
1422c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1423c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.OK )THEN
1424c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           WRITE( NOUT, FMT = 9992 )
1425c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           FATAL = .TRUE.
1426c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           GO TO 120
1427c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1428c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1429c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       See what data changed inside subroutines.
1430c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1431c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 1 ) = UPLOS.EQ.UPLO
1432c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 2 ) = TRANSS.EQ.TRANS
1433c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 3 ) = NS.EQ.N
1434c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 4 ) = KS.EQ.K
1435c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1436c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 5 ) = RALS.EQ.RALPHA
1437c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1438c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 5 ) = ALS.EQ.ALPHA
1439c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1440c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 6 ) = LZE( AS, AA, LAA )
1441c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 7 ) = LDAS.EQ.LDA
1442c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1443c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 8 ) = RBETS.EQ.RBETA
1444c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1445c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 8 ) = BETS.EQ.BETA
1446c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1447c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( NULL )THEN
1448c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 9 ) = LZE( CS, CC, LCC )
1449c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1450c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 9 ) = LZERES( SNAME( 2: 3 ), UPLO, N,
1451c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                  N, CS, CC, LDC )
1452c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1453c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 10 ) = LDCS.EQ.LDC
1454c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1455c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       If data was incorrectly changed, report and
1456c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       return.
1457c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1458c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        SAME = .TRUE.
1459c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 30 I = 1, NARGS
1460c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           SAME = SAME.AND.ISAME( I )
1461c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.ISAME( I ) )
1462c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NOUT, FMT = 9998 )I
1463c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30                   CONTINUE
1464c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.SAME )THEN
1465c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           FATAL = .TRUE.
1466c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           GO TO 120
1467c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1468c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1469c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.NULL )THEN
1470c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1471c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Check the result column by column.
1472c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1473c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( CONJ )THEN
1474c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              TRANST = 'C'
1475c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ELSE
1476c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              TRANST = 'T'
1477c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
1478c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           JC = 1
1479c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 40 J = 1, N
1480c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( UPPER )THEN
1481c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JJ = 1
1482c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 LJ = J
1483c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ELSE
1484c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JJ = J
1485c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 LJ = N - J + 1
1486c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              END IF
1487c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( TRAN )THEN
1488c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 CALL ZMMCH( TRANST, 'N', LJ, 1, K,
1489c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       ALPHA, A( 1, JJ ), NMAX,
1490c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       A( 1, J ), NMAX, BETA,
1491c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       C( JJ, J ), NMAX, CT, G,
1492c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       CC( JC ), LDC, EPS, ERR,
1493c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       FATAL, NOUT, .TRUE. )
1494c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ELSE
1495c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 CALL ZMMCH( 'N', TRANST, LJ, 1, K,
1496c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       ALPHA, A( JJ, 1 ), NMAX,
1497c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       A( J, 1 ), NMAX, BETA,
1498c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       C( JJ, J ), NMAX, CT, G,
1499c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       CC( JC ), LDC, EPS, ERR,
1500c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       FATAL, NOUT, .TRUE. )
1501c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              END IF
1502c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( UPPER )THEN
1503c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JC = JC + LDC
1504c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ELSE
1505c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JC = JC + LDC + 1
1506c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              END IF
1507c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ERRMAX = MAX( ERRMAX, ERR )
1508c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             If got really bad answer, report and
1509c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             return.
1510c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( FATAL )
1511c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           GO TO 110
1512c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40                      CONTINUE
1513c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1514c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1515c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50                CONTINUE
1516c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1517c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60             CONTINUE
1518c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1519c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70          CONTINUE
1520c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1521c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80       CONTINUE
1522c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1523c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90    CONTINUE
1524c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1525c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100 CONTINUE
1526c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1527c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Report result.
1528c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1529c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( ERRMAX.LT.THRESH )THEN
1530c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9999 )SNAME, NC
1531c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
1532c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )SNAME, NC, ERRMAX
1533c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
1534c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 130
1535c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1536c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  110 CONTINUE
1537c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( N.GT.1 )
1538c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   WRITE( NOUT, FMT = 9995 )J
1539c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1540c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  120 CONTINUE
1541c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9996 )SNAME
1542c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( CONJ )THEN
1543c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9994 )NC, SNAME, UPLO, TRANS, N, K, RALPHA,
1544c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      LDA, RBETA, LDC
1545c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
1546c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9993 )NC, SNAME, UPLO, TRANS, N, K, ALPHA,
1547c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      LDA, BETA, LDC
1548c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
1549c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1550c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  130 CONTINUE
1551c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
1552c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1553c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ', A6, ' PASSED THE COMPUTATIONAL TESTS (', I6, ' CALL',
1554c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'S)' )
1555c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' ******* FATAL ERROR - PARAMETER NUMBER ', I2, ' WAS CH',
1556c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ANGED INCORRECTLY *******' )
1557c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( ' ', A6, ' COMPLETED THE COMPUTATIONAL TESTS (', I6, ' C',
1558c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ALLS)', /' ******* BUT WITH MAXIMUM TEST RATIO', F8.2,
1559c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' - SUSPECT *******' )
1560c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9996 FORMAT( ' ******* ', A6, ' FAILED ON CALL NUMBER:' )
1561c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9995 FORMAT( '      THESE ARE THE RESULTS FOR COLUMN ', I3 )
1562c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9994 FORMAT( 1X, I6, ': ', A6, '(', 2( '''', A1, ''',' ), 2( I3, ',' ),
1563c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      F4.1, ', A,', I3, ',', F4.1, ', C,', I3, ')               ',
1564c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '          .' )
1565c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9993 FORMAT( 1X, I6, ': ', A6, '(', 2( '''', A1, ''',' ), 2( I3, ',' ),
1566c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '(', F4.1, ',', F4.1, ') , A,', I3, ',(', F4.1, ',', F4.1,
1567c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '), C,', I3, ')          .' )
1568c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9992 FORMAT( ' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1569c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '******' )
1570c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1571c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZCHK4.
1572c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1573c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
1574c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZCHK5( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1575c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
1576c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  AB, AA, AS, BB, BS, C, CC, CS, CT, G, W )
1577c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1578c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests ZHER2K and ZSYR2K.
1579c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1580c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
1581c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1582c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
1583c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
1584c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
1585c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
1586c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
1587c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1588c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
1589c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO, ONE
1590c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ),
1591c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   ONE = ( 1.0D0, 0.0D0 ) )
1592c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RONE, RZERO
1593c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RONE = 1.0D0, RZERO = 0.0D0 )
1594c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
1595c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   EPS, THRESH
1596c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1597c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            FATAL, REWI, TRACE
1598c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SNAME
1599c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
1600c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         AA( NMAX*NMAX ), AB( 2*NMAX*NMAX ),
1601c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   ALF( NALF ), AS( NMAX*NMAX ), BB( NMAX*NMAX ),
1602c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   BET( NBET ), BS( NMAX*NMAX ), C( NMAX, NMAX ),
1603c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   CC( NMAX*NMAX ), CS( NMAX*NMAX ), CT( NMAX ),
1604c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   W( 2*NMAX )
1605c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   G( NMAX )
1606c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            IDIM( NIDIM )
1607c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
1608c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ALPHA, ALS, BETA, BETS
1609c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   ERR, ERRMAX, RBETA, RBETS
1610c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, JJAB,
1611c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   K, KS, LAA, LBB, LCC, LDA, LDAS, LDB, LDBS,
1612c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   LDC, LDCS, LJ, MA, N, NA, NARGS, NC, NS
1613c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            CONJ, NULL, RESET, SAME, TRAN, UPPER
1614c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        TRANS, TRANSS, TRANST, UPLO, UPLOS
1615c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*2        ICHT, ICHU
1616c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Arrays ..
1617c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            ISAME( 13 )
1618c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Functions ..
1619c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LZE, LZERES
1620c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           LZE, LZERES
1621c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Subroutines ..
1622c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZHER2K, ZMAKE, ZMMCH, ZSYR2K
1623c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
1624c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          DCMPLX, DCONJG, MAX, DBLE
1625c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
1626c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUTC
1627c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
1628c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
1629c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUTC, OK, LERR
1630c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Data statements ..
1631c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DATA               ICHT/'NC'/, ICHU/'UL'/
1632c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
1633c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CONJ = SNAME( 2: 3 ).EQ.'HE'
1634c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1635c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NARGS = 12
1636c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      NC = 0
1637c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RESET = .TRUE.
1638c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ERRMAX = RZERO
1639c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1640c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 130 IN = 1, NIDIM
1641c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         N = IDIM( IN )
1642c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*        Set LDC to 1 more than minimum value if room.
1643c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         LDC = N
1644c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( LDC.LT.NMAX )
1645c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      LDC = LDC + 1
1646c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*        Skip tests if not enough room.
1647c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( LDC.GT.NMAX )
1648c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      GO TO 130
1649c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         LCC = LDC*N
1650c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1651c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 120 IK = 1, NIDIM
1652c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            K = IDIM( IK )
1653c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1654c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 110 ICT = 1, 2
1655c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               TRANS = ICHT( ICT: ICT )
1656c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               TRAN = TRANS.EQ.'C'
1657c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( TRAN.AND..NOT.CONJ )
1658c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            TRANS = 'T'
1659c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( TRAN )THEN
1660c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  MA = K
1661c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = N
1662c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
1663c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  MA = N
1664c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  NA = K
1665c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
1666c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Set LDA to 1 more than minimum value if room.
1667c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LDA = MA
1668c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.LT.NMAX )
1669c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            LDA = LDA + 1
1670c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Skip tests if not enough room.
1671c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( LDA.GT.NMAX )
1672c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            GO TO 110
1673c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LAA = LDA*NA
1674c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1675c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Generate the matrix A.
1676c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1677c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( TRAN )THEN
1678c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  CALL ZMAKE( 'GE', ' ', ' ', MA, NA, AB, 2*NMAX, AA,
1679c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        LDA, RESET, ZERO )
1680c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
1681c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  CALL ZMAKE( 'GE', ' ', ' ', MA, NA, AB, NMAX, AA, LDA,
1682c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        RESET, ZERO )
1683c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
1684c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1685c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*              Generate the matrix B.
1686c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1687c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LDB = LDA
1688c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               LBB = LAA
1689c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( TRAN )THEN
1690c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  CALL ZMAKE( 'GE', ' ', ' ', MA, NA, AB( K + 1 ),
1691c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        2*NMAX, BB, LDB, RESET, ZERO )
1692c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
1693c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  CALL ZMAKE( 'GE', ' ', ' ', MA, NA, AB( K*NMAX + 1 ),
1694c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        NMAX, BB, LDB, RESET, ZERO )
1695c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
1696c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1697c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 100 ICU = 1, 2
1698c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  UPLO = ICHU( ICU: ICU )
1699c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  UPPER = UPLO.EQ.'U'
1700c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1701c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 90 IA = 1, NALF
1702c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     ALPHA = ALF( IA )
1703c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1704c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 80 IB = 1, NBET
1705c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        BETA = BET( IB )
1706c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1707c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           RBETA = DBLE( BETA )
1708c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BETA = DCMPLX( RBETA, RZERO )
1709c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1710c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NULL = N.LE.0
1711c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )
1712c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                     NULL = NULL.OR.( ( K.LE.0.OR.ALPHA.EQ.
1713c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                            ZERO ).AND.RBETA.EQ.RONE )
1714c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1715c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Generate the matrix C.
1716c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1717c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        CALL ZMAKE( SNAME( 2: 3 ), UPLO, ' ', N, N, C,
1718c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                              NMAX, CC, LDC, RESET, ZERO )
1719c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1720c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NC = NC + 1
1721c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1722c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Save every datum before calling the subroutine.
1723c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1724c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        UPLOS = UPLO
1725c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        TRANSS = TRANS
1726c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        NS = N
1727c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        KS = K
1728c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ALS = ALPHA
1729c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 10 I = 1, LAA
1730c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           AS( I ) = AA( I )
1731c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10                   CONTINUE
1732c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDAS = LDA
1733c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 20 I = 1, LBB
1734c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BS( I ) = BB( I )
1735c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20                   CONTINUE
1736c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDBS = LDB
1737c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1738c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           RBETS = RBETA
1739c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1740c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           BETS = BETA
1741c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1742c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 30 I = 1, LCC
1743c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CS( I ) = CC( I )
1744c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30                   CONTINUE
1745c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        LDCS = LDC
1746c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1747c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Call the subroutine.
1748c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1749c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1750c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( TRACE )
1751c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NTRA, FMT = 9994 )NC, SNAME, UPLO,
1752c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        TRANS, N, K, ALPHA, LDA, LDB, RBETA, LDC
1753c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( REWI )
1754c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        REWIND NTRA
1755c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZHER2K( UPLO, TRANS, N, K, ALPHA, AA,
1756c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                  LDA, BB, LDB, RBETA, CC, LDC )
1757c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1758c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( TRACE )
1759c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NTRA, FMT = 9993 )NC, SNAME, UPLO,
1760c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        TRANS, N, K, ALPHA, LDA, LDB, BETA, LDC
1761c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( REWI )
1762c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        REWIND NTRA
1763c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           CALL ZSYR2K( UPLO, TRANS, N, K, ALPHA, AA,
1764c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                  LDA, BB, LDB, BETA, CC, LDC )
1765c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1766c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1767c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       Check if error-exit was taken incorrectly.
1768c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1769c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.OK )THEN
1770c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           WRITE( NOUT, FMT = 9992 )
1771c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           FATAL = .TRUE.
1772c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           GO TO 150
1773c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1774c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1775c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       See what data changed inside subroutines.
1776c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1777c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 1 ) = UPLOS.EQ.UPLO
1778c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 2 ) = TRANSS.EQ.TRANS
1779c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 3 ) = NS.EQ.N
1780c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 4 ) = KS.EQ.K
1781c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 5 ) = ALS.EQ.ALPHA
1782c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 6 ) = LZE( AS, AA, LAA )
1783c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 7 ) = LDAS.EQ.LDA
1784c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 8 ) = LZE( BS, BB, LBB )
1785c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 9 ) = LDBS.EQ.LDB
1786c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( CONJ )THEN
1787c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 10 ) = RBETS.EQ.RBETA
1788c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1789c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 10 ) = BETS.EQ.BETA
1790c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1791c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( NULL )THEN
1792c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 11 ) = LZE( CS, CC, LCC )
1793c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ELSE
1794c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ISAME( 11 ) = LZERES( 'HE', UPLO, N, N, CS,
1795c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                   CC, LDC )
1796c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1797c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        ISAME( 12 ) = LDCS.EQ.LDC
1798c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1799c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       If data was incorrectly changed, report and
1800c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                       return.
1801c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1802c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        SAME = .TRUE.
1803c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        DO 40 I = 1, NARGS
1804c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           SAME = SAME.AND.ISAME( I )
1805c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( .NOT.ISAME( I ) )
1806c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        WRITE( NOUT, FMT = 9998 )I
1807c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40                   CONTINUE
1808c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.SAME )THEN
1809c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           FATAL = .TRUE.
1810c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           GO TO 150
1811c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1812c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1813c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        IF( .NOT.NULL )THEN
1814c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1815c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                          Check the result column by column.
1816c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1817c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           IF( CONJ )THEN
1818c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              TRANST = 'C'
1819c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           ELSE
1820c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              TRANST = 'T'
1821c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           END IF
1822c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           JJAB = 1
1823c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           JC = 1
1824c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                           DO 70 J = 1, N
1825c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( UPPER )THEN
1826c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JJ = 1
1827c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 LJ = J
1828c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ELSE
1829c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JJ = J
1830c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 LJ = N - J + 1
1831c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              END IF
1832c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( TRAN )THEN
1833c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 DO 50 I = 1, K
1834c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    W( I ) = ALPHA*AB( ( J - 1 )*2*
1835c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       NMAX + K + I )
1836c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    IF( CONJ )THEN
1837c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       W( K + I ) = DCONJG( ALPHA )*
1838c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              AB( ( J - 1 )*2*
1839c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              NMAX + I )
1840c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    ELSE
1841c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       W( K + I ) = ALPHA*
1842c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              AB( ( J - 1 )*2*
1843c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              NMAX + I )
1844c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    END IF
1845c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50                            CONTINUE
1846c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 CALL ZMMCH( TRANST, 'N', LJ, 1, 2*K,
1847c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       ONE, AB( JJAB ), 2*NMAX, W,
1848c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       2*NMAX, BETA, C( JJ, J ),
1849c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       NMAX, CT, G, CC( JC ), LDC,
1850c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       EPS, ERR, FATAL, NOUT,
1851c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       .TRUE. )
1852c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ELSE
1853c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 DO 60 I = 1, K
1854c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    IF( CONJ )THEN
1855c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       W( I ) = ALPHA*DCONJG( AB( ( K +
1856c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          I - 1 )*NMAX + J ) )
1857c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       W( K + I ) = DCONJG( ALPHA*
1858c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              AB( ( I - 1 )*NMAX +
1859c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              J ) )
1860c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    ELSE
1861c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       W( I ) = ALPHA*AB( ( K + I - 1 )*
1862c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                          NMAX + J )
1863c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                       W( K + I ) = ALPHA*
1864c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              AB( ( I - 1 )*NMAX +
1865c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                              J )
1866c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                    END IF
1867c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60                            CONTINUE
1868c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 CALL ZMMCH( 'N', 'N', LJ, 1, 2*K, ONE,
1869c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       AB( JJ ), NMAX, W, 2*NMAX,
1870c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       BETA, C( JJ, J ), NMAX, CT,
1871c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       G, CC( JC ), LDC, EPS, ERR,
1872c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                                       FATAL, NOUT, .TRUE. )
1873c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              END IF
1874c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( UPPER )THEN
1875c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JC = JC + LDC
1876c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ELSE
1877c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 JC = JC + LDC + 1
1878c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                                 IF( TRAN )
1879c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                              JJAB = JJAB + 2*NMAX
1880c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              END IF
1881c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              ERRMAX = MAX( ERRMAX, ERR )
1882c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             If got really bad answer, report and
1883c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                             return.
1884c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                              IF( FATAL )
1885c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           GO TO 140
1886c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70                      CONTINUE
1887c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        END IF
1888c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1889c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80                CONTINUE
1890c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1891c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90             CONTINUE
1892c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1893c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100          CONTINUE
1894c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1895c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  110       CONTINUE
1896c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1897c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  120    CONTINUE
1898c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1899c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  130 CONTINUE
1900c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1901c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Report result.
1902c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1903c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( ERRMAX.LT.THRESH )THEN
1904c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9999 )SNAME, NC
1905c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
1906c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9997 )SNAME, NC, ERRMAX
1907c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
1908c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 160
1909c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1910c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  140 CONTINUE
1911c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( N.GT.1 )
1912c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   WRITE( NOUT, FMT = 9995 )J
1913c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1914c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  150 CONTINUE
1915c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9996 )SNAME
1916c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( CONJ )THEN
1917c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9994 )NC, SNAME, UPLO, TRANS, N, K, ALPHA,
1918c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      LDA, LDB, RBETA, LDC
1919c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
1920c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9993 )NC, SNAME, UPLO, TRANS, N, K, ALPHA,
1921c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      LDA, LDB, BETA, LDC
1922c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
1923c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1924c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  160 CONTINUE
1925c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
1926c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1927c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ', A6, ' PASSED THE COMPUTATIONAL TESTS (', I6, ' CALL',
1928c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'S)' )
1929c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' ******* FATAL ERROR - PARAMETER NUMBER ', I2, ' WAS CH',
1930c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ANGED INCORRECTLY *******' )
1931c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( ' ', A6, ' COMPLETED THE COMPUTATIONAL TESTS (', I6, ' C',
1932c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ALLS)', /' ******* BUT WITH MAXIMUM TEST RATIO', F8.2,
1933c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' - SUSPECT *******' )
1934c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9996 FORMAT( ' ******* ', A6, ' FAILED ON CALL NUMBER:' )
1935c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9995 FORMAT( '      THESE ARE THE RESULTS FOR COLUMN ', I3 )
1936c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9994 FORMAT( 1X, I6, ': ', A6, '(', 2( '''', A1, ''',' ), 2( I3, ',' ),
1937c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '(', F4.1, ',', F4.1, '), A,', I3, ', B,', I3, ',', F4.1,
1938c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ', C,', I3, ')           .' )
1939c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9993 FORMAT( 1X, I6, ': ', A6, '(', 2( '''', A1, ''',' ), 2( I3, ',' ),
1940c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '(', F4.1, ',', F4.1, '), A,', I3, ', B,', I3, ',(', F4.1,
1941c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ',', F4.1, '), C,', I3, ')    .' )
1942c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9992 FORMAT( ' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1943c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '******' )
1944c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1945c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZCHK5.
1946c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1947c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
1948c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZCHKE( ISNUM, SRNAMT, NOUT )
1949c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1950c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests the error exits from the Level 3 Blas.
1951c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Requires a special version of the error-handling routine XERBLA.
1952c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  ALPHA, RALPHA, BETA, RBETA, A, B and C should not need to be defined.
1953c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1954c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
1955c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1956c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
1957c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
1958c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
1959c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
1960c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
1961c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
1962c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
1963c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            ISNUM, NOUT
1964c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SRNAMT
1965c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
1966c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUTC
1967c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
1968c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
1969c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ALPHA, BETA
1970c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RALPHA, RBETA
1971c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Arrays ..
1972c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         A( 2, 1 ), B( 2, 1 ), C( 2, 1 )
1973c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Subroutines ..
1974c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZGEMM, ZHEMM, ZHER2K, ZHERK, CHKXER, ZSYMM,
1975c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   ZSYR2K, ZSYRK, ZTRMM, ZTRSM
1976c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
1977c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUTC, OK, LERR
1978c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
1979c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     OK is set to .FALSE. by the special version of XERBLA or by CHKXER
1980c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     if anything is wrong.
1981c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      OK = .TRUE.
1982c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     LERR is set to .TRUE. by the special version of XERBLA each time
1983c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     it is called, and is then tested and re-set by CHKXER.
1984c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LERR = .FALSE.
1985c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
1986c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $        90 )ISNUM
1987c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10 INFOT = 1
1988c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( '/', 'N', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
1989c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
1990c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 1
1991c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( '/', 'C', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
1992c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
1993c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 1
1994c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( '/', 'T', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
1995c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
1996c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
1997c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', '/', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
1998c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
1999c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2000c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', '/', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2001c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2002c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2003c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', '/', 0, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2004c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2005c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2006c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'N', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2007c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2008c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2009c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'C', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2010c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2011c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2012c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'T', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2013c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2014c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2015c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'N', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2016c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2017c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2018c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'C', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2019c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2020c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2021c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'T', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2022c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2023c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2024c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'N', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2025c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2026c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2027c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'C', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2028c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2029c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2030c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'T', -1, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2031c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2032c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2033c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'N', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2034c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2035c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2036c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'C', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2037c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2038c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2039c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'T', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2040c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2041c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2042c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'N', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2043c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2044c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2045c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'C', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2046c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2047c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2048c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'T', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2049c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2050c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2051c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'N', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2052c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2053c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2054c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'C', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2055c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2056c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2057c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'T', 0, -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2058c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2059c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2060c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'N', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2061c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2062c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2063c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'C', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2064c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2065c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2066c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'T', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2067c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2068c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2069c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'N', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2070c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2071c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2072c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'C', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2073c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2074c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2075c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'T', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2076c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2077c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2078c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'N', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2079c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2080c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2081c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'C', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2082c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2083c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2084c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'T', 0, 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2085c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2086c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2087c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'N', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
2088c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2089c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2090c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'C', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
2091c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2092c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2093c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'T', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
2094c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2095c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2096c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'N', 0, 0, 2, ALPHA, A, 1, B, 2, BETA, C, 1 )
2097c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2098c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2099c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'C', 0, 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2100c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2101c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2102c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'T', 0, 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2103c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2104c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2105c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'N', 0, 0, 2, ALPHA, A, 1, B, 2, BETA, C, 1 )
2106c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2107c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2108c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'C', 0, 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2109c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2110c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 8
2111c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'T', 0, 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2112c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2113c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2114c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'N', 0, 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2115c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2116c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2117c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'N', 0, 0, 2, ALPHA, A, 2, B, 1, BETA, C, 1 )
2118c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2119c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2120c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'N', 0, 0, 2, ALPHA, A, 2, B, 1, BETA, C, 1 )
2121c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2122c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2123c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'C', 0, 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2124c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2125c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2126c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'C', 0, 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2127c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2128c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2129c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'C', 0, 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2130c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2131c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2132c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'T', 0, 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2133c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2134c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2135c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'T', 0, 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2136c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2137c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2138c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'T', 0, 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2139c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2140c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2141c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'N', 2, 0, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
2142c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2143c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2144c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'C', 2, 0, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
2145c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2146c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2147c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'N', 'T', 2, 0, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
2148c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2149c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2150c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'N', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2151c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2152c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2153c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'C', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2154c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2155c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2156c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'C', 'T', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2157c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2158c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2159c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'N', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2160c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2161c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2162c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'C', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2163c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2164c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 13
2165c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZGEMM( 'T', 'T', 2, 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2166c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2167c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2168c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20 INFOT = 1
2169c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( '/', 'U', 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2170c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2171c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2172c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', '/', 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2173c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2174c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2175c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'U', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2176c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2177c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2178c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'U', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2179c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2180c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2181c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'L', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2182c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2183c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2184c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'L', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2185c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2186c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2187c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'U', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2188c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2189c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2190c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'U', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2191c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2192c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2193c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'L', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2194c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2195c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2196c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'L', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2197c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2198c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2199c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'U', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 2 )
2200c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2201c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2202c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'U', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2203c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2204c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2205c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'L', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 2 )
2206c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2207c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2208c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2209c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2210c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2211c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
2212c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2213c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2214c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2215c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2216c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2217c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
2218c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2219c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2220c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2221c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2222c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2223c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
2224c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2225c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2226c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 1 )
2227c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2228c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2229c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
2230c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2231c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2232c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHEMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 1 )
2233c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2234c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2235c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30 INFOT = 1
2236c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( '/', 'U', 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2237c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2238c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2239c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', '/', 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2240c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2241c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2242c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'U', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2243c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2244c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2245c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'U', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2246c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2247c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2248c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'L', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2249c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2250c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2251c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'L', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2252c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2253c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2254c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'U', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2255c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2256c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2257c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'U', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2258c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2259c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2260c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'L', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2261c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2262c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2263c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'L', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2264c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2265c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2266c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'U', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 2 )
2267c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2268c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2269c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'U', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2270c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2271c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2272c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'L', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 2 )
2273c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2274c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2275c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'L', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2276c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2277c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2278c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
2279c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2280c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2281c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2282c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2283c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2284c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 1 )
2285c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2286c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2287c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2288c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2289c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2290c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'U', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
2291c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2292c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2293c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'U', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 1 )
2294c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2295c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2296c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'L', 'L', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
2297c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2298c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2299c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYMM( 'R', 'L', 2, 0, ALPHA, A, 1, B, 2, BETA, C, 1 )
2300c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2301c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2302c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40 INFOT = 1
2303c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( '/', 'U', 'N', 'N', 0, 0, ALPHA, A, 1, B, 1 )
2304c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2305c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2306c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', '/', 'N', 'N', 0, 0, ALPHA, A, 1, B, 1 )
2307c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2308c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2309c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', '/', 'N', 0, 0, ALPHA, A, 1, B, 1 )
2310c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2311c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2312c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'N', '/', 0, 0, ALPHA, A, 1, B, 1 )
2313c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2314c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2315c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2316c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2317c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2318c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2319c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2320c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2321c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2322c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2323c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2324c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2325c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2326c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2327c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2328c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2329c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2330c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2331c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2332c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2333c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2334c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2335c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2336c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2337c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2338c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2339c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2340c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2341c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2342c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2343c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2344c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2345c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2346c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2347c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2348c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2349c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2350c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2351c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2352c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2353c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2354c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2355c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2356c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2357c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2358c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2359c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2360c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2361c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2362c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2363c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2364c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2365c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2366c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2367c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2368c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2369c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2370c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2371c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2372c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2373c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2374c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2375c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2376c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2377c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2378c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2379c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2380c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2381c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2382c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2383c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2384c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2385c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2386c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2387c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'N', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2388c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2389c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2390c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'C', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2391c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2392c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2393c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'T', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2394c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2395c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2396c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'N', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2397c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2398c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2399c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'C', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2400c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2401c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2402c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'T', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2403c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2404c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2405c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'N', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2406c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2407c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2408c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'C', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2409c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2410c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2411c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'T', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2412c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2413c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2414c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'N', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2415c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2416c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2417c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'C', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2418c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2419c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2420c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'T', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2421c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2422c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2423c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'N', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2424c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2425c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2426c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'C', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2427c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2428c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2429c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'U', 'T', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2430c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2431c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2432c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'N', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2433c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2434c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2435c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'C', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2436c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2437c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2438c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'U', 'T', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2439c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2440c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2441c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'N', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2442c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2443c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2444c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'C', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2445c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2446c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2447c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'L', 'L', 'T', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2448c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2449c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2450c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'N', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2451c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2452c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2453c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'C', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2454c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2455c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2456c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRMM( 'R', 'L', 'T', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2457c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2458c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2459c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50 INFOT = 1
2460c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( '/', 'U', 'N', 'N', 0, 0, ALPHA, A, 1, B, 1 )
2461c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2462c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2463c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', '/', 'N', 'N', 0, 0, ALPHA, A, 1, B, 1 )
2464c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2465c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2466c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', '/', 'N', 0, 0, ALPHA, A, 1, B, 1 )
2467c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2468c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2469c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'N', '/', 0, 0, ALPHA, A, 1, B, 1 )
2470c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2471c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2472c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2473c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2474c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2475c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2476c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2477c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2478c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2479c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2480c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2481c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2482c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2483c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2484c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2485c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2486c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2487c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2488c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2489c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2490c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2491c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2492c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2493c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2494c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2495c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2496c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2497c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2498c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2499c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'N', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2500c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2501c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2502c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'C', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2503c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2504c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 5
2505c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'T', 'N', -1, 0, ALPHA, A, 1, B, 1 )
2506c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2507c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2508c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2509c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2510c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2511c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2512c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2513c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2514c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2515c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2516c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2517c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2518c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2519c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2520c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2521c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2522c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2523c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2524c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2525c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2526c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2527c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2528c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2529c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2530c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2531c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2532c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2533c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2534c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2535c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'N', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2536c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2537c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2538c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'C', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2539c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2540c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 6
2541c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'T', 'N', 0, -1, ALPHA, A, 1, B, 1 )
2542c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2543c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2544c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'N', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2545c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2546c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2547c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'C', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2548c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2549c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2550c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'T', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2551c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2552c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2553c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'N', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2554c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2555c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2556c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'C', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2557c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2558c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2559c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'T', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2560c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2561c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2562c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'N', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2563c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2564c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2565c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'C', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2566c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2567c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2568c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'T', 'N', 2, 0, ALPHA, A, 1, B, 2 )
2569c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2570c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2571c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'N', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2572c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2573c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2574c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'C', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2575c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2576c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2577c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'T', 'N', 0, 2, ALPHA, A, 1, B, 1 )
2578c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2579c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2580c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'N', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2581c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2582c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2583c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'C', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2584c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2585c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2586c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'U', 'T', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2587c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2588c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2589c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'N', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2590c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2591c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2592c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'C', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2593c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2594c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2595c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'U', 'T', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2596c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2597c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2598c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'N', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2599c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2600c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2601c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'C', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2602c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2603c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2604c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'L', 'L', 'T', 'N', 2, 0, ALPHA, A, 2, B, 1 )
2605c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2606c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2607c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'N', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2608c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2609c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2610c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'C', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2611c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2612c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 11
2613c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZTRSM( 'R', 'L', 'T', 'N', 2, 0, ALPHA, A, 1, B, 1 )
2614c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2615c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2616c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60 INFOT = 1
2617c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( '/', 'N', 0, 0, RALPHA, A, 1, RBETA, C, 1 )
2618c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2619c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2620c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'T', 0, 0, RALPHA, A, 1, RBETA, C, 1 )
2621c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2622c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2623c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'N', -1, 0, RALPHA, A, 1, RBETA, C, 1 )
2624c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2625c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2626c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'C', -1, 0, RALPHA, A, 1, RBETA, C, 1 )
2627c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2628c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2629c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'N', -1, 0, RALPHA, A, 1, RBETA, C, 1 )
2630c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2631c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2632c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'C', -1, 0, RALPHA, A, 1, RBETA, C, 1 )
2633c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2634c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2635c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'N', 0, -1, RALPHA, A, 1, RBETA, C, 1 )
2636c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2637c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2638c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'C', 0, -1, RALPHA, A, 1, RBETA, C, 1 )
2639c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2640c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2641c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'N', 0, -1, RALPHA, A, 1, RBETA, C, 1 )
2642c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2643c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2644c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'C', 0, -1, RALPHA, A, 1, RBETA, C, 1 )
2645c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2646c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2647c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'N', 2, 0, RALPHA, A, 1, RBETA, C, 2 )
2648c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2649c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2650c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'C', 0, 2, RALPHA, A, 1, RBETA, C, 1 )
2651c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2652c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2653c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'N', 2, 0, RALPHA, A, 1, RBETA, C, 2 )
2654c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2655c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2656c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'C', 0, 2, RALPHA, A, 1, RBETA, C, 1 )
2657c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2658c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2659c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'N', 2, 0, RALPHA, A, 2, RBETA, C, 1 )
2660c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2661c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2662c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'U', 'C', 2, 0, RALPHA, A, 1, RBETA, C, 1 )
2663c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2664c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2665c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'N', 2, 0, RALPHA, A, 2, RBETA, C, 1 )
2666c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2667c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2668c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHERK( 'L', 'C', 2, 0, RALPHA, A, 1, RBETA, C, 1 )
2669c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2670c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2671c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70 INFOT = 1
2672c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( '/', 'N', 0, 0, ALPHA, A, 1, BETA, C, 1 )
2673c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2674c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2675c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'C', 0, 0, ALPHA, A, 1, BETA, C, 1 )
2676c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2677c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2678c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'N', -1, 0, ALPHA, A, 1, BETA, C, 1 )
2679c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2680c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2681c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'T', -1, 0, ALPHA, A, 1, BETA, C, 1 )
2682c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2683c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2684c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'N', -1, 0, ALPHA, A, 1, BETA, C, 1 )
2685c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2686c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2687c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'T', -1, 0, ALPHA, A, 1, BETA, C, 1 )
2688c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2689c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2690c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'N', 0, -1, ALPHA, A, 1, BETA, C, 1 )
2691c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2692c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2693c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'T', 0, -1, ALPHA, A, 1, BETA, C, 1 )
2694c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2695c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2696c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'N', 0, -1, ALPHA, A, 1, BETA, C, 1 )
2697c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2698c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2699c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'T', 0, -1, ALPHA, A, 1, BETA, C, 1 )
2700c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2701c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2702c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'N', 2, 0, ALPHA, A, 1, BETA, C, 2 )
2703c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2704c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2705c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'T', 0, 2, ALPHA, A, 1, BETA, C, 1 )
2706c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2707c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2708c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'N', 2, 0, ALPHA, A, 1, BETA, C, 2 )
2709c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2710c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2711c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'T', 0, 2, ALPHA, A, 1, BETA, C, 1 )
2712c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2713c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2714c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'N', 2, 0, ALPHA, A, 2, BETA, C, 1 )
2715c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2716c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2717c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'U', 'T', 2, 0, ALPHA, A, 1, BETA, C, 1 )
2718c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2719c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2720c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'N', 2, 0, ALPHA, A, 2, BETA, C, 1 )
2721c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2722c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 10
2723c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYRK( 'L', 'T', 2, 0, ALPHA, A, 1, BETA, C, 1 )
2724c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2725c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2726c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80 INFOT = 1
2727c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( '/', 'N', 0, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2728c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2729c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2730c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'T', 0, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2731c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2732c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2733c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'N', -1, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2734c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2735c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2736c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'C', -1, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2737c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2738c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2739c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'N', -1, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2740c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2741c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2742c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'C', -1, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2743c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2744c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2745c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'N', 0, -1, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2746c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2747c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2748c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'C', 0, -1, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2749c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2750c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2751c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'N', 0, -1, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2752c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2753c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2754c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'C', 0, -1, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2755c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2756c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2757c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'N', 2, 0, ALPHA, A, 1, B, 1, RBETA, C, 2 )
2758c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2759c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2760c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'C', 0, 2, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2761c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2762c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2763c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'N', 2, 0, ALPHA, A, 1, B, 1, RBETA, C, 2 )
2764c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2765c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2766c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'C', 0, 2, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2767c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2768c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2769c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'N', 2, 0, ALPHA, A, 2, B, 1, RBETA, C, 2 )
2770c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2771c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2772c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'C', 0, 2, ALPHA, A, 2, B, 1, RBETA, C, 1 )
2773c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2774c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2775c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'N', 2, 0, ALPHA, A, 2, B, 1, RBETA, C, 2 )
2776c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2777c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2778c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'C', 0, 2, ALPHA, A, 2, B, 1, RBETA, C, 1 )
2779c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2780c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2781c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'N', 2, 0, ALPHA, A, 2, B, 2, RBETA, C, 1 )
2782c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2783c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2784c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'U', 'C', 2, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2785c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2786c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2787c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'N', 2, 0, ALPHA, A, 2, B, 2, RBETA, C, 1 )
2788c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2789c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2790c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZHER2K( 'L', 'C', 2, 0, ALPHA, A, 1, B, 1, RBETA, C, 1 )
2791c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2792c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 100
2793c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90 INFOT = 1
2794c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( '/', 'N', 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2795c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2796c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 2
2797c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'C', 0, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2798c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2799c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2800c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'N', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2801c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2802c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2803c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'T', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2804c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2805c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2806c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'N', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2807c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2808c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 3
2809c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'T', -1, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2810c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2811c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2812c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'N', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2813c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2814c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2815c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'T', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2816c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2817c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2818c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'N', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2819c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2820c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 4
2821c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'T', 0, -1, ALPHA, A, 1, B, 1, BETA, C, 1 )
2822c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2823c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2824c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'N', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
2825c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2826c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2827c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'T', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2828c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2829c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2830c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'N', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 2 )
2831c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2832c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 7
2833c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'T', 0, 2, ALPHA, A, 1, B, 1, BETA, C, 1 )
2834c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2835c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2836c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'N', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
2837c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2838c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2839c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'T', 0, 2, ALPHA, A, 2, B, 1, BETA, C, 1 )
2840c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2841c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2842c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'N', 2, 0, ALPHA, A, 2, B, 1, BETA, C, 2 )
2843c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2844c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 9
2845c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'T', 0, 2, ALPHA, A, 2, B, 1, BETA, C, 1 )
2846c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2847c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2848c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'N', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
2849c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2850c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2851c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'U', 'T', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2852c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2853c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2854c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'N', 2, 0, ALPHA, A, 2, B, 2, BETA, C, 1 )
2855c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2856c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INFOT = 12
2857c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL ZSYR2K( 'L', 'T', 2, 0, ALPHA, A, 1, B, 1, BETA, C, 1 )
2858c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CALL CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
2859c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2860c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100 IF( OK )THEN
2861c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9999 )SRNAMT
2862c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE
2863c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9998 )SRNAMT
2864c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
2865c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
2866c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2867c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ', A6, ' PASSED THE TESTS OF ERROR-EXITS' )
2868c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' ******* ', A6, ' FAILED THE TESTS OF ERROR-EXITS *****',
2869c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      '**' )
2870c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2871c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZCHKE.
2872c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2873c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
2874c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZMAKE( TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, RESET,
2875c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  TRANSL )
2876c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2877c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Generates values for an M by N matrix A.
2878c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Stores the values in the array AA in the data structure required
2879c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  by the routine, with unwanted elements set to rogue value.
2880c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2881c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  TYPE is 'GE', 'HE', 'SY' or 'TR'.
2882c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2883c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
2884c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2885c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
2886c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
2887c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
2888c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
2889c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
2890c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2891c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
2892c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO, ONE
2893c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ),
2894c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   ONE = ( 1.0D0, 0.0D0 ) )
2895c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ROGUE
2896c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ROGUE = ( -1.0D10, 1.0D10 ) )
2897c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RZERO
2898c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RZERO = 0.0D0 )
2899c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RROGUE
2900c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RROGUE = -1.0D10 )
2901c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
2902c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         TRANSL
2903c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            LDA, M, N, NMAX
2904c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            RESET
2905c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        DIAG, UPLO
2906c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*2        TYPE
2907c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
2908c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         A( NMAX, * ), AA( * )
2909c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
2910c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IBEG, IEND, J, JJ
2911c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            GEN, HER, LOWER, SYM, TRI, UNIT, UPPER
2912c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. External Functions ..
2913c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZBEG
2914c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      EXTERNAL           ZBEG
2915c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
2916c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          DCMPLX, DCONJG, DBLE
2917c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
2918c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GEN = TYPE.EQ.'GE'
2919c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      HER = TYPE.EQ.'HE'
2920c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SYM = TYPE.EQ.'SY'
2921c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRI = TYPE.EQ.'TR'
2922c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      UPPER = ( HER.OR.SYM.OR.TRI ).AND.UPLO.EQ.'U'
2923c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOWER = ( HER.OR.SYM.OR.TRI ).AND.UPLO.EQ.'L'
2924c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      UNIT = TRI.AND.DIAG.EQ.'U'
2925c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2926c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Generate data in array A.
2927c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2928c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 20 J = 1, N
2929c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 10 I = 1, M
2930c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( GEN.OR.( UPPER.AND.I.LE.J ).OR.( LOWER.AND.I.GE.J ) )
2931c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $          THEN
2932c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               A( I, J ) = ZBEG( RESET ) + TRANSL
2933c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( I.NE.J )THEN
2934c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*                 Set some elements to zero
2935c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IF( N.GT.3.AND.J.EQ.N/2 )
2936c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $               A( I, J ) = ZERO
2937c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IF( HER )THEN
2938c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     A( J, I ) = DCONJG( A( I, J ) )
2939c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  ELSE IF( SYM )THEN
2940c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     A( J, I ) = A( I, J )
2941c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  ELSE IF( TRI )THEN
2942c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     A( J, I ) = ZERO
2943c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  END IF
2944c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
2945c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
2946c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10    CONTINUE
2947c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( HER )
2948c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      A( J, J ) = DCMPLX( DBLE( A( J, J ) ), RZERO )
2949c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( TRI )
2950c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      A( J, J ) = A( J, J ) + ONE
2951c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( UNIT )
2952c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      A( J, J ) = ONE
2953c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20 CONTINUE
2954c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2955c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Store elements in array AS in data structure required by routine.
2956c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
2957c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( TYPE.EQ.'GE' )THEN
2958c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 50 J = 1, N
2959c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 30 I = 1, M
2960c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               AA( I + ( J - 1 )*LDA ) = A( I, J )
2961c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30       CONTINUE
2962c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 40 I = M + 1, LDA
2963c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               AA( I + ( J - 1 )*LDA ) = ROGUE
2964c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40       CONTINUE
2965c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50    CONTINUE
2966c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE IF( TYPE.EQ.'HE'.OR.TYPE.EQ.'SY'.OR.TYPE.EQ.'TR' )THEN
2967c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 90 J = 1, N
2968c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( UPPER )THEN
2969c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IBEG = 1
2970c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( UNIT )THEN
2971c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IEND = J - 1
2972c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
2973c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IEND = J
2974c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
2975c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            ELSE
2976c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( UNIT )THEN
2977c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IBEG = J + 1
2978c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
2979c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  IBEG = J
2980c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
2981c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IEND = N
2982c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
2983c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 60 I = 1, IBEG - 1
2984c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               AA( I + ( J - 1 )*LDA ) = ROGUE
2985c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60       CONTINUE
2986c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 70 I = IBEG, IEND
2987c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               AA( I + ( J - 1 )*LDA ) = A( I, J )
2988c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70       CONTINUE
2989c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 80 I = IEND + 1, LDA
2990c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               AA( I + ( J - 1 )*LDA ) = ROGUE
2991c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80       CONTINUE
2992c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( HER )THEN
2993c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               JJ = J + ( J - 1 )*LDA
2994c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               AA( JJ ) = DCMPLX( DBLE( AA( JJ ) ), RROGUE )
2995c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
2996c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90    CONTINUE
2997c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
2998c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
2999c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3000c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZMAKE.
3001c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3002c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3003c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE ZMMCH( TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB,
3004c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL,
3005c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                  NOUT, MV )
3006c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3007c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Checks the results of the computational tests.
3008c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3009c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
3010c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3011c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
3012c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
3013c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
3014c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
3015c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
3016c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3017c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Parameters ..
3018c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ZERO
3019c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( ZERO = ( 0.0D0, 0.0D0 ) )
3020c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   RZERO, RONE
3021c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      PARAMETER          ( RZERO = 0.0D0, RONE = 1.0D0 )
3022c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
3023c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         ALPHA, BETA
3024c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   EPS, ERR
3025c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            KK, LDA, LDB, LDC, LDCC, M, N, NOUT
3026c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            FATAL, MV
3027c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        TRANSA, TRANSB
3028c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
3029c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         A( LDA, * ), B( LDB, * ), C( LDC, * ),
3030c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                   CC( LDCC, * ), CT( * )
3031c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   G( * )
3032c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
3033c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         CL
3034c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   ERRI
3035c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, J, K
3036c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            CTRANA, CTRANB, TRANA, TRANB
3037c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
3038c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          ABS, DIMAG, DCONJG, MAX, DBLE, SQRT
3039c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Statement Functions ..
3040c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   ABS1
3041c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Statement Function definitions ..
3042c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ABS1( CL ) = ABS( DBLE( CL ) ) + ABS( DIMAG( CL ) )
3043c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
3044c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANA = TRANSA.EQ.'T'.OR.TRANSA.EQ.'C'
3045c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      TRANB = TRANSB.EQ.'T'.OR.TRANSB.EQ.'C'
3046c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CTRANA = TRANSA.EQ.'C'
3047c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CTRANB = TRANSB.EQ.'C'
3048c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3049c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Compute expected result, one column at a time, in CT using data
3050c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     in A, B and C.
3051c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Compute gauges in G.
3052c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3053c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 220 J = 1, N
3054c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3055c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 10 I = 1, M
3056c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            CT( I ) = ZERO
3057c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            G( I ) = RZERO
3058c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10    CONTINUE
3059c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( .NOT.TRANA.AND..NOT.TRANB )THEN
3060c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 30 K = 1, KK
3061c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 20 I = 1, M
3062c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  CT( I ) = CT( I ) + A( I, K )*B( K, J )
3063c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  G( I ) = G( I ) + ABS1( A( I, K ) )*ABS1( B( K, J ) )
3064c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20          CONTINUE
3065c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30       CONTINUE
3066c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         ELSE IF( TRANA.AND..NOT.TRANB )THEN
3067c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( CTRANA )THEN
3068c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 50 K = 1, KK
3069c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 40 I = 1, M
3070c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     CT( I ) = CT( I ) + DCONJG( A( K, I ) )*B( K, J )
3071c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     G( I ) = G( I ) + ABS1( A( K, I ) )*
3072c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        ABS1( B( K, J ) )
3073c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40             CONTINUE
3074c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50          CONTINUE
3075c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            ELSE
3076c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 70 K = 1, KK
3077c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 60 I = 1, M
3078c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     CT( I ) = CT( I ) + A( K, I )*B( K, J )
3079c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     G( I ) = G( I ) + ABS1( A( K, I ) )*
3080c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        ABS1( B( K, J ) )
3081c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60             CONTINUE
3082c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70          CONTINUE
3083c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
3084c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         ELSE IF( .NOT.TRANA.AND.TRANB )THEN
3085c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( CTRANB )THEN
3086c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 90 K = 1, KK
3087c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 80 I = 1, M
3088c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     CT( I ) = CT( I ) + A( I, K )*DCONJG( B( J, K ) )
3089c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     G( I ) = G( I ) + ABS1( A( I, K ) )*
3090c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        ABS1( B( J, K ) )
3091c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80             CONTINUE
3092c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   90          CONTINUE
3093c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            ELSE
3094c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               DO 110 K = 1, KK
3095c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 100 I = 1, M
3096c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     CT( I ) = CT( I ) + A( I, K )*B( J, K )
3097c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     G( I ) = G( I ) + ABS1( A( I, K ) )*
3098c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                        ABS1( B( J, K ) )
3099c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  100             CONTINUE
3100c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  110          CONTINUE
3101c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
3102c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         ELSE IF( TRANA.AND.TRANB )THEN
3103c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( CTRANA )THEN
3104c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( CTRANB )THEN
3105c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 130 K = 1, KK
3106c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 120 I = 1, M
3107c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        CT( I ) = CT( I ) + DCONJG( A( K, I ) )*
3108c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                            DCONJG( B( J, K ) )
3109c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        G( I ) = G( I ) + ABS1( A( K, I ) )*
3110c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           ABS1( B( J, K ) )
3111c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  120                CONTINUE
3112c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  130             CONTINUE
3113c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
3114c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 150 K = 1, KK
3115c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 140 I = 1, M
3116c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        CT( I ) = CT( I ) + DCONJG( A( K, I ) )*
3117c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                            B( J, K )
3118c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        G( I ) = G( I ) + ABS1( A( K, I ) )*
3119c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           ABS1( B( J, K ) )
3120c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  140                CONTINUE
3121c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  150             CONTINUE
3122c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
3123c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            ELSE
3124c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( CTRANB )THEN
3125c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 170 K = 1, KK
3126c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 160 I = 1, M
3127c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        CT( I ) = CT( I ) + A( K, I )*
3128c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                            DCONJG( B( J, K ) )
3129c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        G( I ) = G( I ) + ABS1( A( K, I ) )*
3130c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           ABS1( B( J, K ) )
3131c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  160                CONTINUE
3132c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  170             CONTINUE
3133c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               ELSE
3134c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                  DO 190 K = 1, KK
3135c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     DO 180 I = 1, M
3136c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        CT( I ) = CT( I ) + A( K, I )*B( J, K )
3137c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                        G( I ) = G( I ) + ABS1( A( K, I ) )*
3138c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $                           ABS1( B( J, K ) )
3139c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  180                CONTINUE
3140c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  190             CONTINUE
3141c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               END IF
3142c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
3143c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         END IF
3144c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 200 I = 1, M
3145c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            CT( I ) = ALPHA*CT( I ) + BETA*C( I, J )
3146c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            G( I ) = ABS1( ALPHA )*G( I ) +
3147c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $               ABS1( BETA )*ABS1( C( I, J ) )
3148c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  200    CONTINUE
3149c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3150c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*        Compute the error ratio for this result.
3151c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3152c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         ERR = ZERO
3153c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 210 I = 1, M
3154c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            ERRI = ABS1( CT( I ) - CC( I, J ) )/EPS
3155c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( G( I ).NE.RZERO )
3156c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         ERRI = ERRI/G( I )
3157c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            ERR = MAX( ERR, ERRI )
3158c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( ERR*SQRT( EPS ).GE.RONE )
3159c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $         GO TO 230
3160c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  210    CONTINUE
3161c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3162c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  220 CONTINUE
3163c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3164c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     If the loop completes, all results are at least half accurate.
3165c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 250
3166c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3167c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Report fatal error.
3168c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3169c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  230 FATAL = .TRUE.
3170c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      WRITE( NOUT, FMT = 9999 )
3171c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 240 I = 1, M
3172c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( MV )THEN
3173c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            WRITE( NOUT, FMT = 9998 )I, CT( I ), CC( I, J )
3174c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         ELSE
3175c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            WRITE( NOUT, FMT = 9998 )I, CC( I, J ), CT( I )
3176c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         END IF
3177c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  240 CONTINUE
3178c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( N.GT.1 )
3179c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $   WRITE( NOUT, FMT = 9997 )J
3180c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3181c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  250 CONTINUE
3182c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
3183c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3184c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
3185c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'F ACCURATE *******', /'                       EXPECTED RE',
3186c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'SULT                    COMPUTED RESULT' )
3187c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( 1X, I7, 2( '  (', G15.6, ',', G15.6, ')' ) )
3188c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( '      THESE ARE THE RESULTS FOR COLUMN ', I3 )
3189c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3190c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZMMCH.
3191c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3192c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3193c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL FUNCTION LZE( RI, RJ, LR )
3194c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3195c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests if two arrays are identical.
3196c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3197c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
3198c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3199c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
3200c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
3201c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
3202c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
3203c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
3204c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3205c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
3206c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            LR
3207c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
3208c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         RI( * ), RJ( * )
3209c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
3210c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I
3211c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
3212c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DO 10 I = 1, LR
3213c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( RI( I ).NE.RJ( I ) )
3214c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      GO TO 20
3215c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10 CONTINUE
3216c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LZE = .TRUE.
3217c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 30
3218c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20 CONTINUE
3219c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LZE = .FALSE.
3220c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30 RETURN
3221c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3222c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of LZE.
3223c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3224c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3225c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL FUNCTION LZERES( TYPE, UPLO, M, N, AA, AS, LDA )
3226c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3227c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests if selected elements in two arrays are equal.
3228c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3229c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  TYPE is 'GE' or 'HE' or 'SY'.
3230c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3231c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
3232c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3233c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
3234c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
3235c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
3236c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
3237c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
3238c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3239c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
3240c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            LDA, M, N
3241c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*1        UPLO
3242c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*2        TYPE
3243c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Array Arguments ..
3244c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16         AA( LDA, * ), AS( LDA, * )
3245c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
3246c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IBEG, IEND, J
3247c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            UPPER
3248c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
3249c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      UPPER = UPLO.EQ.'U'
3250c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( TYPE.EQ.'GE' )THEN
3251c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 20 J = 1, N
3252c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 10 I = M + 1, LDA
3253c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( AA( I, J ).NE.AS( I, J ) )
3254c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            GO TO 70
3255c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10       CONTINUE
3256c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   20    CONTINUE
3257c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ELSE IF( TYPE.EQ.'HE'.OR.TYPE.EQ.'SY' )THEN
3258c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         DO 50 J = 1, N
3259c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            IF( UPPER )THEN
3260c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IBEG = 1
3261c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IEND = J
3262c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            ELSE
3263c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IBEG = J
3264c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IEND = N
3265c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            END IF
3266c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 30 I = 1, IBEG - 1
3267c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( AA( I, J ).NE.AS( I, J ) )
3268c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            GO TO 70
3269c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   30       CONTINUE
3270c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            DO 40 I = IEND + 1, LDA
3271c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath               IF( AA( I, J ).NE.AS( I, J ) )
3272c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $            GO TO 70
3273c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   40       CONTINUE
3274c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   50    CONTINUE
3275c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
3276c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3277c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   60 CONTINUE
3278c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LZERES = .TRUE.
3279c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      GO TO 80
3280c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   70 CONTINUE
3281c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LZERES = .FALSE.
3282c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   80 RETURN
3283c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3284c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of LZERES.
3285c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3286c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3287c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMPLEX*16     FUNCTION ZBEG( RESET )
3288c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3289c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Generates complex numbers as pairs of random numbers uniformly
3290c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  distributed between -0.5 and 0.5.
3291c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3292c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
3293c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3294c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
3295c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
3296c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
3297c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
3298c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
3299c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3300c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
3301c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            RESET
3302c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Local Scalars ..
3303c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            I, IC, J, MI, MJ
3304c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Save statement ..
3305c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SAVE               I, IC, J, MI, MJ
3306c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Intrinsic Functions ..
3307c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTRINSIC          DCMPLX
3308c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
3309c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( RESET )THEN
3310c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*        Initialize local variables.
3311c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         MI = 891
3312c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         MJ = 457
3313c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         I = 7
3314c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         J = 7
3315c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IC = 0
3316c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         RESET = .FALSE.
3317c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
3318c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3319c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     The sequence of values of I or J is bounded between 1 and 999.
3320c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     If initial I or J = 1,2,3,6,7 or 9, the period will be 50.
3321c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     If initial I or J = 4 or 8, the period will be 25.
3322c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     If initial I or J = 5, the period will be 10.
3323c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     IC is used to break up the period by skipping 1 value of I or J
3324c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     in 6.
3325c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3326c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IC = IC + 1
3327c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath   10 I = I*MI
3328c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      J = J*MJ
3329c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      I = I - 1000*( I/1000 )
3330c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      J = J - 1000*( J/1000 )
3331c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( IC.GE.5 )THEN
3332c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IC = 0
3333c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         GO TO 10
3334c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
3335c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      ZBEG = DCMPLX( ( I - 500 )/1001.0D0, ( J - 500 )/1001.0D0 )
3336c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
3337c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3338c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of ZBEG.
3339c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3340c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3341c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION FUNCTION DDIFF( X, Y )
3342c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3343c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
3344c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3345c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
3346c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
3347c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
3348c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
3349c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
3350c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3351c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
3352c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DOUBLE PRECISION   X, Y
3353c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
3354c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      DDIFF = X - Y
3355c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
3356c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3357c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of DDIFF.
3358c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3359c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3360c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
3361c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3362c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Tests whether XERBLA has detected an error when it should.
3363c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3364c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
3365c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3366c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
3367c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
3368c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
3369c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
3370c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
3371c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3372c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
3373c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUT
3374c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
3375c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SRNAMT
3376c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
3377c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( .NOT.LERR )THEN
3378c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9999 )INFOT, SRNAMT
3379c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         OK = .FALSE.
3380c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
3381c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LERR = .FALSE.
3382c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
3383c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3384c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ***** ILLEGAL VALUE OF PARAMETER NUMBER ', I2, ' NOT D',
3385c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'ETECTED BY ', A6, ' *****' )
3386c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3387c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of CHKXER.
3388c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3389c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3390c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      SUBROUTINE XERBLA( SRNAME, INFO )
3391c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3392c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  This is a special version of XERBLA to be used only as part of
3393c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  the test program for testing error exits from the Level 3 BLAS
3394c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  routines.
3395c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3396c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  XERBLA  is an error handler for the Level 3 BLAS routines.
3397c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3398c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  It is called by the Level 3 BLAS routines if an input parameter is
3399c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  invalid.
3400c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3401c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  Auxiliary routine for test program for Level 3 Blas.
3402c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3403c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*  -- Written on 8-February-1989.
3404c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jack Dongarra, Argonne National Laboratory.
3405c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Iain Duff, AERE Harwell.
3406c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Jeremy Du Croz, Numerical Algorithms Group Ltd.
3407c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     Sven Hammarling, Numerical Algorithms Group Ltd.
3408c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3409c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalar Arguments ..
3410c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFO
3411c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SRNAME
3412c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Scalars in Common ..
3413c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      INTEGER            INFOT, NOUT
3414c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LOGICAL            LERR, OK
3415c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      CHARACTER*6        SRNAMT
3416c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Common blocks ..
3417c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /INFOC/INFOT, NOUT, OK, LERR
3418c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      COMMON             /SRNAMC/SRNAMT
3419c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     .. Executable Statements ..
3420c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      LERR = .TRUE.
3421c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( INFO.NE.INFOT )THEN
3422c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         IF( INFOT.NE.0 )THEN
3423c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            WRITE( NOUT, FMT = 9999 )INFO, INFOT
3424c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         ELSE
3425c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath            WRITE( NOUT, FMT = 9997 )INFO
3426c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         END IF
3427c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         OK = .FALSE.
3428c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
3429c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      IF( SRNAME.NE.SRNAMT )THEN
3430c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         WRITE( NOUT, FMT = 9998 )SRNAME, SRNAMT
3431c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         OK = .FALSE.
3432c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END IF
3433c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      RETURN
3434c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3435c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9999 FORMAT( ' ******* XERBLA WAS CALLED WITH INFO = ', I6, ' INSTEAD',
3436c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' OF ', I2, ' *******' )
3437c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9998 FORMAT( ' ******* XERBLA WAS CALLED WITH SRNAME = ', A6, ' INSTE',
3438c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      'AD OF ', A6, ' *******' )
3439c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath 9997 FORMAT( ' ******* XERBLA WAS CALLED WITH INFO = ', I6,
3440c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath     $      ' *******' )
3441c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3442c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*     End of XERBLA
3443c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath*
3444c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      END
3445c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
3446