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