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