@@ -156,9 +156,10 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
156156      REAL                RESULT( NTESTS )
157157*      ..
158158*      .. External Functions ..
159+       LOGICAL             LSAME
159160      REAL                SLAMCH, CLANGE
160161      COMPLEX             CLARND
161-       EXTERNAL            SLAMCH, CLARND, CLANGE
162+       EXTERNAL            SLAMCH, CLARND, CLANGE, LSAME 
162163*      ..
163164*      .. External Subroutines ..
164165      EXTERNAL            CTRTTF, CGEQRF, CGEQLF, CTFSM, CTRSM
@@ -222,9 +223,9 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
222223* 
223224                           DO  100  IALPHA =  1 , 3 
224225* 
225-                               IF  ( IALPHA.EQ.   1 ) THEN 
226+                               IF  ( IALPHA.EQ. 1   ) THEN 
226227                                 ALPHA =  ZERO
227-                               ELSE  IF  ( IALPHA.EQ.   2 ) THEN 
228+                               ELSE  IF  ( IALPHA.EQ. 2   ) THEN 
228229                                 ALPHA =  ONE
229230                              ELSE 
230231                                 ALPHA =  CLARND( 4 , ISEED )
@@ -263,7 +264,7 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
263264* 
264265                              DO  J =  1 , NA
265266                                 DO  I =  1 , NA
266-                                     A( I, J) =  CLARND( 4 , ISEED )
267+                                     A( I, J  ) =  CLARND( 4 , ISEED )
267268                                 END DO 
268269                              END DO 
269270* 
@@ -276,6 +277,20 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
276277                                 CALL  CGEQRF( NA, NA, A, LDA, TAU,
277278     +                                         C_WORK_CGEQRF, LDA,
278279     +                                         INFO )
280+ * 
281+ *                                 Forcing main diagonal of test matrix to
282+ *                                 be unit makes it ill-conditioned for
283+ *                                 some test cases
284+ * 
285+                                  IF  ( LSAME( DIAG, ' U'   ) ) THEN 
286+                                     DO  J =  1 , NA
287+                                        DO  I =  1 , J
288+                                           A( I, J ) =  A( I, J ) / 
289+      +                                             ( 2.0  *  A( J, J ) )
290+                                        END DO 
291+                                     END DO 
292+                                  END IF 
293+ * 
279294                              ELSE 
280295* 
281296*                                 The case IUPLO.EQ.2 is when SIDE.EQ.'L'
@@ -285,6 +300,20 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
285300                                 CALL  CGELQF( NA, NA, A, LDA, TAU,
286301     +                                         C_WORK_CGEQRF, LDA,
287302     +                                         INFO )
303+ * 
304+ *                                 Forcing main diagonal of test matrix to
305+ *                                 be unit makes it ill-conditioned for
306+ *                                 some test cases
307+ * 
308+                                  IF  ( LSAME( DIAG, ' U'   ) ) THEN 
309+                                     DO  I =  1 , NA
310+                                        DO  J =  1 , I
311+                                           A( I, J ) =  A( I, J ) / 
312+      +                                             ( 2.0  *  A( I, I ) )
313+                                        END DO 
314+                                     END DO 
315+                                  END IF 
316+ * 
288317                              END IF 
289318* 
290319*                              After the QR factorization, the diagonal
@@ -293,7 +322,8 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
293322*                              value 1.0E+00.
294323* 
295324                              DO  J =  1 , NA
296-                                  A( J, J) =  A(J,J) *  CLARND( 5 , ISEED )
325+                                  A( J, J ) =  A( J, J ) * 
326+      +                                    CLARND( 5 , ISEED )
297327                              END DO 
298328* 
299329*                              Store a copy of A in RFP format (in ARF).
@@ -307,8 +337,8 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
307337* 
308338                              DO  J =  1 , N
309339                                 DO  I =  1 , M
310-                                     B1( I, J) =  CLARND( 4 , ISEED )
311-                                     B2( I, J) =  B1( I, J)
340+                                     B1( I, J  ) =  CLARND( 4 , ISEED )
341+                                     B2( I, J  ) =  B1( I, J  )
312342                                 END DO 
313343                              END DO 
314344* 
@@ -331,24 +361,24 @@ SUBROUTINE CDRVRF3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
331361* 
332362                              DO  J =  1 , N
333363                                 DO  I =  1 , M
334-                                     B1( I, J) =  B2( I, J ) -  B1( I, J )
364+                                     B1( I, J  ) =  B2( I, J ) -  B1( I, J )
335365                                 END DO 
336366                              END DO 
337367* 
338-                               RESULT(1 ) =  CLANGE( ' I'  , M, N, B1, LDA,
368+                               RESULT(  1   ) =  CLANGE( ' I'  , M, N, B1, LDA,
339369     +                                             S_WORK_CLANGE )
340370* 
341-                               RESULT(1 ) =  RESULT(1 ) /  SQRT ( EPS )
342-      +                                     /  MAX ( MAX ( M, N), 1  )
371+                               RESULT(  1   ) =  RESULT(  1   ) /  SQRT ( EPS )
372+      +                                     /  MAX ( MAX ( M, N  ), 1  )
343373* 
344-                               IF ( RESULT(1 ).GE. THRESH ) THEN 
374+                               IF ( RESULT(  1   ).GE. THRESH ) THEN 
345375                                 IF ( NFAIL.EQ. 0  ) THEN 
346376                                    WRITE ( NOUT, *  )
347377                                    WRITE ( NOUT, FMT =  9999  )
348378                                 END IF 
349379                                 WRITE ( NOUT, FMT =  9997  ) ' CTFSM'  ,
350380     +                               CFORM, SIDE, UPLO, TRANS, DIAG, M,
351-      +                               N, RESULT(1 )
381+      +                               N, RESULT(  1   )
352382                                 NFAIL =  NFAIL +  1 
353383                              END IF 
354384* 
0 commit comments