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.

zerrrfp.f 9.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. *> \brief \b ZERRRFP
  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 ZERRRFP( NUNIT )
  12. *
  13. * .. Scalar Arguments ..
  14. * INTEGER NUNIT
  15. * ..
  16. *
  17. *
  18. *> \par Purpose:
  19. * =============
  20. *>
  21. *> \verbatim
  22. *>
  23. *> ZERRRFP tests the error exits for the COMPLEX*16 driver routines
  24. *> for solving linear systems of equations.
  25. *>
  26. *> ZDRVRFP tests the COMPLEX*16 LAPACK RFP routines:
  27. *> ZTFSM, ZTFTRI, ZHFRK, ZTFTTP, ZTFTTR, ZPFTRF, ZPFTRS, ZTPTTF,
  28. *> ZTPTTR, ZTRTTF, and ZTRTTP
  29. *> \endverbatim
  30. *
  31. * Arguments:
  32. * ==========
  33. *
  34. *> \param[in] NUNIT
  35. *> \verbatim
  36. *> NUNIT is INTEGER
  37. *> The unit number for output.
  38. *> \endverbatim
  39. *
  40. * Authors:
  41. * ========
  42. *
  43. *> \author Univ. of Tennessee
  44. *> \author Univ. of California Berkeley
  45. *> \author Univ. of Colorado Denver
  46. *> \author NAG Ltd.
  47. *
  48. *> \date December 2016
  49. *
  50. *> \ingroup complex16_lin
  51. *
  52. * =====================================================================
  53. SUBROUTINE ZERRRFP( NUNIT )
  54. *
  55. * -- LAPACK test routine (version 3.7.0) --
  56. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  57. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  58. * December 2016
  59. *
  60. * .. Scalar Arguments ..
  61. INTEGER NUNIT
  62. * ..
  63. *
  64. * =====================================================================
  65. *
  66. * ..
  67. * .. Local Scalars ..
  68. INTEGER INFO
  69. DOUBLE PRECISION ALPHA, BETA
  70. COMPLEX*16 CALPHA
  71. * ..
  72. * .. Local Arrays ..
  73. COMPLEX*16 A( 1, 1), B( 1, 1)
  74. * ..
  75. * .. External Subroutines ..
  76. EXTERNAL CHKXER, ZTFSM, ZTFTRI, ZHFRK, ZTFTTP, ZTFTTR,
  77. + ZPFTRI, ZPFTRF, ZPFTRS, ZTPTTF, ZTPTTR, ZTRTTF,
  78. + ZTRTTP
  79. * ..
  80. * .. Scalars in Common ..
  81. LOGICAL LERR, OK
  82. CHARACTER*32 SRNAMT
  83. INTEGER INFOT, NOUT
  84. * ..
  85. * .. Intrinsic Functions ..
  86. INTRINSIC DCMPLX
  87. * ..
  88. * .. Common blocks ..
  89. COMMON / INFOC / INFOT, NOUT, OK, LERR
  90. COMMON / SRNAMC / SRNAMT
  91. * ..
  92. * .. Executable Statements ..
  93. *
  94. NOUT = NUNIT
  95. OK = .TRUE.
  96. A( 1, 1 ) = DCMPLX( 1.0D0 , 1.0D0 )
  97. B( 1, 1 ) = DCMPLX( 1.0D0 , 1.0D0 )
  98. ALPHA = 1.0D0
  99. CALPHA = DCMPLX( 1.0D0 , 1.0D0 )
  100. BETA = 1.0D0
  101. *
  102. SRNAMT = 'ZPFTRF'
  103. INFOT = 1
  104. CALL ZPFTRF( '/', 'U', 0, A, INFO )
  105. CALL CHKXER( 'ZPFTRF', INFOT, NOUT, LERR, OK )
  106. INFOT = 2
  107. CALL ZPFTRF( 'N', '/', 0, A, INFO )
  108. CALL CHKXER( 'ZPFTRF', INFOT, NOUT, LERR, OK )
  109. INFOT = 3
  110. CALL ZPFTRF( 'N', 'U', -1, A, INFO )
  111. CALL CHKXER( 'ZPFTRF', INFOT, NOUT, LERR, OK )
  112. *
  113. SRNAMT = 'ZPFTRS'
  114. INFOT = 1
  115. CALL ZPFTRS( '/', 'U', 0, 0, A, B, 1, INFO )
  116. CALL CHKXER( 'ZPFTRS', INFOT, NOUT, LERR, OK )
  117. INFOT = 2
  118. CALL ZPFTRS( 'N', '/', 0, 0, A, B, 1, INFO )
  119. CALL CHKXER( 'ZPFTRS', INFOT, NOUT, LERR, OK )
  120. INFOT = 3
  121. CALL ZPFTRS( 'N', 'U', -1, 0, A, B, 1, INFO )
  122. CALL CHKXER( 'ZPFTRS', INFOT, NOUT, LERR, OK )
  123. INFOT = 4
  124. CALL ZPFTRS( 'N', 'U', 0, -1, A, B, 1, INFO )
  125. CALL CHKXER( 'ZPFTRS', INFOT, NOUT, LERR, OK )
  126. INFOT = 7
  127. CALL ZPFTRS( 'N', 'U', 0, 0, A, B, 0, INFO )
  128. CALL CHKXER( 'ZPFTRS', INFOT, NOUT, LERR, OK )
  129. *
  130. SRNAMT = 'ZPFTRI'
  131. INFOT = 1
  132. CALL ZPFTRI( '/', 'U', 0, A, INFO )
  133. CALL CHKXER( 'ZPFTRI', INFOT, NOUT, LERR, OK )
  134. INFOT = 2
  135. CALL ZPFTRI( 'N', '/', 0, A, INFO )
  136. CALL CHKXER( 'ZPFTRI', INFOT, NOUT, LERR, OK )
  137. INFOT = 3
  138. CALL ZPFTRI( 'N', 'U', -1, A, INFO )
  139. CALL CHKXER( 'ZPFTRI', INFOT, NOUT, LERR, OK )
  140. *
  141. SRNAMT = 'ZTFSM '
  142. INFOT = 1
  143. CALL ZTFSM( '/', 'L', 'U', 'C', 'U', 0, 0, CALPHA, A, B, 1 )
  144. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  145. INFOT = 2
  146. CALL ZTFSM( 'N', '/', 'U', 'C', 'U', 0, 0, CALPHA, A, B, 1 )
  147. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  148. INFOT = 3
  149. CALL ZTFSM( 'N', 'L', '/', 'C', 'U', 0, 0, CALPHA, A, B, 1 )
  150. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  151. INFOT = 4
  152. CALL ZTFSM( 'N', 'L', 'U', '/', 'U', 0, 0, CALPHA, A, B, 1 )
  153. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  154. INFOT = 5
  155. CALL ZTFSM( 'N', 'L', 'U', 'C', '/', 0, 0, CALPHA, A, B, 1 )
  156. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  157. INFOT = 6
  158. CALL ZTFSM( 'N', 'L', 'U', 'C', 'U', -1, 0, CALPHA, A, B, 1 )
  159. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  160. INFOT = 7
  161. CALL ZTFSM( 'N', 'L', 'U', 'C', 'U', 0, -1, CALPHA, A, B, 1 )
  162. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  163. INFOT = 11
  164. CALL ZTFSM( 'N', 'L', 'U', 'C', 'U', 0, 0, CALPHA, A, B, 0 )
  165. CALL CHKXER( 'ZTFSM ', INFOT, NOUT, LERR, OK )
  166. *
  167. SRNAMT = 'ZTFTRI'
  168. INFOT = 1
  169. CALL ZTFTRI( '/', 'L', 'N', 0, A, INFO )
  170. CALL CHKXER( 'ZTFTRI', INFOT, NOUT, LERR, OK )
  171. INFOT = 2
  172. CALL ZTFTRI( 'N', '/', 'N', 0, A, INFO )
  173. CALL CHKXER( 'ZTFTRI', INFOT, NOUT, LERR, OK )
  174. INFOT = 3
  175. CALL ZTFTRI( 'N', 'L', '/', 0, A, INFO )
  176. CALL CHKXER( 'ZTFTRI', INFOT, NOUT, LERR, OK )
  177. INFOT = 4
  178. CALL ZTFTRI( 'N', 'L', 'N', -1, A, INFO )
  179. CALL CHKXER( 'ZTFTRI', INFOT, NOUT, LERR, OK )
  180. *
  181. SRNAMT = 'ZTFTTR'
  182. INFOT = 1
  183. CALL ZTFTTR( '/', 'U', 0, A, B, 1, INFO )
  184. CALL CHKXER( 'ZTFTTR', INFOT, NOUT, LERR, OK )
  185. INFOT = 2
  186. CALL ZTFTTR( 'N', '/', 0, A, B, 1, INFO )
  187. CALL CHKXER( 'ZTFTTR', INFOT, NOUT, LERR, OK )
  188. INFOT = 3
  189. CALL ZTFTTR( 'N', 'U', -1, A, B, 1, INFO )
  190. CALL CHKXER( 'ZTFTTR', INFOT, NOUT, LERR, OK )
  191. INFOT = 6
  192. CALL ZTFTTR( 'N', 'U', 0, A, B, 0, INFO )
  193. CALL CHKXER( 'ZTFTTR', INFOT, NOUT, LERR, OK )
  194. *
  195. SRNAMT = 'ZTRTTF'
  196. INFOT = 1
  197. CALL ZTRTTF( '/', 'U', 0, A, 1, B, INFO )
  198. CALL CHKXER( 'ZTRTTF', INFOT, NOUT, LERR, OK )
  199. INFOT = 2
  200. CALL ZTRTTF( 'N', '/', 0, A, 1, B, INFO )
  201. CALL CHKXER( 'ZTRTTF', INFOT, NOUT, LERR, OK )
  202. INFOT = 3
  203. CALL ZTRTTF( 'N', 'U', -1, A, 1, B, INFO )
  204. CALL CHKXER( 'ZTRTTF', INFOT, NOUT, LERR, OK )
  205. INFOT = 5
  206. CALL ZTRTTF( 'N', 'U', 0, A, 0, B, INFO )
  207. CALL CHKXER( 'ZTRTTF', INFOT, NOUT, LERR, OK )
  208. *
  209. SRNAMT = 'ZTFTTP'
  210. INFOT = 1
  211. CALL ZTFTTP( '/', 'U', 0, A, B, INFO )
  212. CALL CHKXER( 'ZTFTTP', INFOT, NOUT, LERR, OK )
  213. INFOT = 2
  214. CALL ZTFTTP( 'N', '/', 0, A, B, INFO )
  215. CALL CHKXER( 'ZTFTTP', INFOT, NOUT, LERR, OK )
  216. INFOT = 3
  217. CALL ZTFTTP( 'N', 'U', -1, A, B, INFO )
  218. CALL CHKXER( 'ZTFTTP', INFOT, NOUT, LERR, OK )
  219. *
  220. SRNAMT = 'ZTPTTF'
  221. INFOT = 1
  222. CALL ZTPTTF( '/', 'U', 0, A, B, INFO )
  223. CALL CHKXER( 'ZTPTTF', INFOT, NOUT, LERR, OK )
  224. INFOT = 2
  225. CALL ZTPTTF( 'N', '/', 0, A, B, INFO )
  226. CALL CHKXER( 'ZTPTTF', INFOT, NOUT, LERR, OK )
  227. INFOT = 3
  228. CALL ZTPTTF( 'N', 'U', -1, A, B, INFO )
  229. CALL CHKXER( 'ZTPTTF', INFOT, NOUT, LERR, OK )
  230. *
  231. SRNAMT = 'ZTRTTP'
  232. INFOT = 1
  233. CALL ZTRTTP( '/', 0, A, 1, B, INFO )
  234. CALL CHKXER( 'ZTRTTP', INFOT, NOUT, LERR, OK )
  235. INFOT = 2
  236. CALL ZTRTTP( 'U', -1, A, 1, B, INFO )
  237. CALL CHKXER( 'ZTRTTP', INFOT, NOUT, LERR, OK )
  238. INFOT = 4
  239. CALL ZTRTTP( 'U', 0, A, 0, B, INFO )
  240. CALL CHKXER( 'ZTRTTP', INFOT, NOUT, LERR, OK )
  241. *
  242. SRNAMT = 'ZTPTTR'
  243. INFOT = 1
  244. CALL ZTPTTR( '/', 0, A, B, 1, INFO )
  245. CALL CHKXER( 'ZTPTTR', INFOT, NOUT, LERR, OK )
  246. INFOT = 2
  247. CALL ZTPTTR( 'U', -1, A, B, 1, INFO )
  248. CALL CHKXER( 'ZTPTTR', INFOT, NOUT, LERR, OK )
  249. INFOT = 5
  250. CALL ZTPTTR( 'U', 0, A, B, 0, INFO )
  251. CALL CHKXER( 'ZTPTTR', INFOT, NOUT, LERR, OK )
  252. *
  253. SRNAMT = 'ZHFRK '
  254. INFOT = 1
  255. CALL ZHFRK( '/', 'U', 'N', 0, 0, ALPHA, A, 1, BETA, B )
  256. CALL CHKXER( 'ZHFRK ', INFOT, NOUT, LERR, OK )
  257. INFOT = 2
  258. CALL ZHFRK( 'N', '/', 'N', 0, 0, ALPHA, A, 1, BETA, B )
  259. CALL CHKXER( 'ZHFRK ', INFOT, NOUT, LERR, OK )
  260. INFOT = 3
  261. CALL ZHFRK( 'N', 'U', '/', 0, 0, ALPHA, A, 1, BETA, B )
  262. CALL CHKXER( 'ZHFRK ', INFOT, NOUT, LERR, OK )
  263. INFOT = 4
  264. CALL ZHFRK( 'N', 'U', 'N', -1, 0, ALPHA, A, 1, BETA, B )
  265. CALL CHKXER( 'ZHFRK ', INFOT, NOUT, LERR, OK )
  266. INFOT = 5
  267. CALL ZHFRK( 'N', 'U', 'N', 0, -1, ALPHA, A, 1, BETA, B )
  268. CALL CHKXER( 'ZHFRK ', INFOT, NOUT, LERR, OK )
  269. INFOT = 8
  270. CALL ZHFRK( 'N', 'U', 'N', 0, 0, ALPHA, A, 0, BETA, B )
  271. CALL CHKXER( 'ZHFRK ', INFOT, NOUT, LERR, OK )
  272. *
  273. * Print a summary line.
  274. *
  275. IF( OK ) THEN
  276. WRITE( NOUT, FMT = 9999 )
  277. ELSE
  278. WRITE( NOUT, FMT = 9998 )
  279. END IF
  280. *
  281. 9999 FORMAT( 1X, 'COMPLEX*16 RFP routines passed the tests of the ',
  282. $ 'error exits' )
  283. 9998 FORMAT( ' *** RFP routines failed the tests of the error ',
  284. $ 'exits ***' )
  285. RETURN
  286. *
  287. * End of ZERRRFP
  288. *
  289. END