1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      79
      80
      81
      82
      83
      84
      85
      86
      87
      88
      89
      90
      91
      92
      93
      94
      95
      96
      97
      98
      99
     100
     101
     102
     103
     104
     105
     106
     107
     108
     109
     110
     111
     112
     113
     114
     115
     116
     117
     118
     119
     120
     121
     122
     123
     124
     125
     126
     127
     128
     129
     130
     131
     132
     133
     134
     135
     136
     137
     138
     139
     140
     141
     142
     143
     144
     145
     146
      SUBROUTINE DLAFTSTYPEMNIMATNTESTSRESULTISEED,
     $                   THRESHIOUNITIE )
*
*  -- LAPACK auxiliary test routine (version 3.1.2) --
*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
*     April 2009
*
*     .. Scalar Arguments ..
      CHARACTER*3        TYPE
      INTEGER            IEIMATIOUNITMNNTESTS
      DOUBLE PRECISION   THRESH
*     ..
*     .. Array Arguments ..
      INTEGER            ISEED4 )
      DOUBLE PRECISION   RESULT* )
*     ..
*
*  Purpose
*  =======
*
*     DLAFTS tests the result vector against the threshold value to
*     see which tests for this matrix type failed to pass the threshold.
*     Output is to the file given by unit IOUNIT.
*
*  Arguments
*  =========
*
*  TYPE   - CHARACTER*3
*           On entry, TYPE specifies the matrix type to be used in the
*           printed messages.
*           Not modified.
*
*  N      - INTEGER
*           On entry, N specifies the order of the test matrix.
*           Not modified.
*
*  IMAT   - INTEGER
*           On entry, IMAT specifies the type of the test matrix.
*           A listing of the different types is printed by DLAHD2
*           to the output file if a test fails to pass the threshold.
*           Not modified.
*
*  NTESTS - INTEGER
*           On entry, NTESTS is the number of tests performed on the
*           subroutines in the path given by TYPE.
*           Not modified.
*
*  RESULT - DOUBLE PRECISION               array of dimension( NTESTS )
*           On entry, RESULT contains the test ratios from the tests
*           performed in the calling program.
*           Not modified.
*
*  ISEED  - INTEGER            array of dimension( 4 )
*           Contains the random seed that generated the matrix used
*           for the tests whose ratios are in RESULT.
*           Not modified.
*
*  THRESH - DOUBLE PRECISION
*           On entry, THRESH specifies the acceptable threshold of the
*           test ratios.  If RESULT( K ) > THRESH, then the K-th test
*           did not pass the threshold and a message will be printed.
*           Not modified.
*
*  IOUNIT - INTEGER
*           On entry, IOUNIT specifies the unit number of the file
*           to which the messages are printed.
*           Not modified.
*
*  IE     - INTEGER
*           On entry, IE contains the number of tests which have
*           failed to pass the threshold so far.
*           Updated on exit if any of the ratios in RESULT also fail.
*
*  =====================================================================
*
*     .. Local Scalars ..
      INTEGER            K
*     ..
*     .. External Subroutines ..
      EXTERNAL           DLAHD2
*     ..
*     .. Executable Statements ..
*
      IFM.EQ.N ) THEN
*
*     Output for square matrices:
*
         DO 10 K = 1NTESTS
            IFRESULTK ).GE.THRESH ) THEN
*
*           If this is the first test to fail, call DLAHD2
*           to print a header to the data file.
*
               IFIE.EQ.0 )
     $            CALL DLAHD2IOUNITTYPE )
               IE = IE + 1
               IFRESULTK ).LT.10000.0D0 ) THEN
                  WRITEIOUNIT, FMT = 9999 )N, IMAT, ISEED, K,
     $               RESULT( K )
 9999             FORMAT( ' Matrix order=', I5, ', type=', I2,
     $                  ', seed=', 4( I4, ',' ), ' result ', I3, ' is',
     $                  0P, F8.2 )
               ELSE
                  WRITEIOUNIT, FMT = 9998 )N, IMAT, ISEED, K,
     $               RESULT( K )
 9998             FORMAT( ' Matrix order=', I5, ', type=', I2,
     $                  ', seed=', 4( I4, ',' ), ' result ', I3, ' is',
     $                  1P, D10.3 )
               END IF
            END IF
   10    CONTINUE
      ELSE
*
*     Output for rectangular matrices
*
         DO 20 K = 1NTESTS
            IFRESULTK ).GE.THRESH ) THEN
*
*              If this is the first test to fail, call DLAHD2
*              to print a header to the data file.
*
               IFIE.EQ.0 )
     $            CALL DLAHD2IOUNITTYPE )
               IE = IE + 1
               IFRESULTK ).LT.10000.0D0 ) THEN
                  WRITEIOUNIT, FMT = 9997 )M, N, IMAT, ISEED, K,
     $               RESULT( K )
 9997             FORMAT( 1X, I5, ' x', I5, ' matrix, type=', I2, ', s',
     $                  'eed=', 3( I4, ',' ), I4, ': result ', I3,
     $                  ' is', 0P, F8.2 )
               ELSE
                  WRITEIOUNIT, FMT = 9996 )M, N, IMAT, ISEED, K,
     $               RESULT( K )
 9996             FORMAT( 1X, I5, ' x', I5, ' matrix, type=', I2, ', s',
     $                  'eed=', 3( I4, ',' ), I4, ': result ', I3,
     $                  ' is', 1P, D10.3 )
               END IF
            END IF
   20    CONTINUE
*
      END IF
      RETURN
*
*     End of DLAFTS
*
      END