You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

dlafts.f 5.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. *> \brief \b DLAFTS
  2. *
  3. * =========== DOCUMENTATION ===========
  4. *
  5. * Online html documentation available at
  6. * http://www.netlib.org/lapack/explore-html/
  7. *
  8. * Definition:
  9. * ===========
  10. *
  11. * SUBROUTINE DLAFTS( TYPE, M, N, IMAT, NTESTS, RESULT, ISEED,
  12. * THRESH, IOUNIT, IE )
  13. *
  14. * .. Scalar Arguments ..
  15. * CHARACTER*3 TYPE
  16. * INTEGER IE, IMAT, IOUNIT, M, N, NTESTS
  17. * DOUBLE PRECISION THRESH
  18. * ..
  19. * .. Array Arguments ..
  20. * INTEGER ISEED( 4 )
  21. * DOUBLE PRECISION RESULT( * )
  22. * ..
  23. *
  24. *
  25. *> \par Purpose:
  26. * =============
  27. *>
  28. *> \verbatim
  29. *>
  30. *> DLAFTS tests the result vector against the threshold value to
  31. *> see which tests for this matrix type failed to pass the threshold.
  32. *> Output is to the file given by unit IOUNIT.
  33. *> \endverbatim
  34. *
  35. * Arguments:
  36. * ==========
  37. *
  38. *> \verbatim
  39. *> TYPE - CHARACTER*3
  40. *> On entry, TYPE specifies the matrix type to be used in the
  41. *> printed messages.
  42. *> Not modified.
  43. *>
  44. *> N - INTEGER
  45. *> On entry, N specifies the order of the test matrix.
  46. *> Not modified.
  47. *>
  48. *> IMAT - INTEGER
  49. *> On entry, IMAT specifies the type of the test matrix.
  50. *> A listing of the different types is printed by DLAHD2
  51. *> to the output file if a test fails to pass the threshold.
  52. *> Not modified.
  53. *>
  54. *> NTESTS - INTEGER
  55. *> On entry, NTESTS is the number of tests performed on the
  56. *> subroutines in the path given by TYPE.
  57. *> Not modified.
  58. *>
  59. *> RESULT - DOUBLE PRECISION array of dimension( NTESTS )
  60. *> On entry, RESULT contains the test ratios from the tests
  61. *> performed in the calling program.
  62. *> Not modified.
  63. *>
  64. *> ISEED - INTEGER array of dimension( 4 )
  65. *> Contains the random seed that generated the matrix used
  66. *> for the tests whose ratios are in RESULT.
  67. *> Not modified.
  68. *>
  69. *> THRESH - DOUBLE PRECISION
  70. *> On entry, THRESH specifies the acceptable threshold of the
  71. *> test ratios. If RESULT( K ) > THRESH, then the K-th test
  72. *> did not pass the threshold and a message will be printed.
  73. *> Not modified.
  74. *>
  75. *> IOUNIT - INTEGER
  76. *> On entry, IOUNIT specifies the unit number of the file
  77. *> to which the messages are printed.
  78. *> Not modified.
  79. *>
  80. *> IE - INTEGER
  81. *> On entry, IE contains the number of tests which have
  82. *> failed to pass the threshold so far.
  83. *> Updated on exit if any of the ratios in RESULT also fail.
  84. *> \endverbatim
  85. *
  86. * Authors:
  87. * ========
  88. *
  89. *> \author Univ. of Tennessee
  90. *> \author Univ. of California Berkeley
  91. *> \author Univ. of Colorado Denver
  92. *> \author NAG Ltd.
  93. *
  94. *> \ingroup double_eig
  95. *
  96. * =====================================================================
  97. SUBROUTINE DLAFTS( TYPE, M, N, IMAT, NTESTS, RESULT, ISEED,
  98. $ THRESH, IOUNIT, IE )
  99. *
  100. * -- LAPACK test routine --
  101. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  102. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  103. *
  104. * .. Scalar Arguments ..
  105. CHARACTER*3 TYPE
  106. INTEGER IE, IMAT, IOUNIT, M, N, NTESTS
  107. DOUBLE PRECISION THRESH
  108. * ..
  109. * .. Array Arguments ..
  110. INTEGER ISEED( 4 )
  111. DOUBLE PRECISION RESULT( * )
  112. * ..
  113. *
  114. * =====================================================================
  115. *
  116. * .. Local Scalars ..
  117. INTEGER K
  118. * ..
  119. * .. External Subroutines ..
  120. EXTERNAL DLAHD2
  121. * ..
  122. * .. Executable Statements ..
  123. *
  124. IF( M.EQ.N ) THEN
  125. *
  126. * Output for square matrices:
  127. *
  128. DO 10 K = 1, NTESTS
  129. IF( RESULT( K ).GE.THRESH ) THEN
  130. *
  131. * If this is the first test to fail, call DLAHD2
  132. * to print a header to the data file.
  133. *
  134. IF( IE.EQ.0 )
  135. $ CALL DLAHD2( IOUNIT, TYPE )
  136. IE = IE + 1
  137. IF( RESULT( K ).LT.10000.0D0 ) THEN
  138. WRITE( IOUNIT, FMT = 9999 )N, IMAT, ISEED, K,
  139. $ RESULT( K )
  140. 9999 FORMAT( ' Matrix order=', I5, ', type=', I2,
  141. $ ', seed=', 4( I4, ',' ), ' result ', I3, ' is',
  142. $ 0P, F8.2 )
  143. ELSE
  144. WRITE( IOUNIT, FMT = 9998 )N, IMAT, ISEED, K,
  145. $ RESULT( K )
  146. 9998 FORMAT( ' Matrix order=', I5, ', type=', I2,
  147. $ ', seed=', 4( I4, ',' ), ' result ', I3, ' is',
  148. $ 1P, D10.3 )
  149. END IF
  150. END IF
  151. 10 CONTINUE
  152. ELSE
  153. *
  154. * Output for rectangular matrices
  155. *
  156. DO 20 K = 1, NTESTS
  157. IF( RESULT( K ).GE.THRESH ) THEN
  158. *
  159. * If this is the first test to fail, call DLAHD2
  160. * to print a header to the data file.
  161. *
  162. IF( IE.EQ.0 )
  163. $ CALL DLAHD2( IOUNIT, TYPE )
  164. IE = IE + 1
  165. IF( RESULT( K ).LT.10000.0D0 ) THEN
  166. WRITE( IOUNIT, FMT = 9997 )M, N, IMAT, ISEED, K,
  167. $ RESULT( K )
  168. 9997 FORMAT( 1X, I5, ' x', I5, ' matrix, type=', I2, ', s',
  169. $ 'eed=', 3( I4, ',' ), I4, ': result ', I3,
  170. $ ' is', 0P, F8.2 )
  171. ELSE
  172. WRITE( IOUNIT, FMT = 9996 )M, N, IMAT, ISEED, K,
  173. $ RESULT( K )
  174. 9996 FORMAT( 1X, I5, ' x', I5, ' matrix, type=', I2, ', s',
  175. $ 'eed=', 3( I4, ',' ), I4, ': result ', I3,
  176. $ ' is', 1P, D10.3 )
  177. END IF
  178. END IF
  179. 20 CONTINUE
  180. *
  181. END IF
  182. RETURN
  183. *
  184. * End of DLAFTS
  185. *
  186. END