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 November 2011
49*
50*> \ingroup complex16_lin
51*
52*  =====================================================================
53      SUBROUTINE ZERRRFP( NUNIT )
54*
55*  -- LAPACK test routine (version 3.4.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*     November 2011
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
290