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