LAPACK  3.4.2
LAPACK: Linear Algebra PACKage
 All Files Functions Groups
derrrfp.f
Go to the documentation of this file.
1 *> \brief \b DERRRFP
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 DERRRFP( NUNIT )
12 *
13 * .. Scalar Arguments ..
14 * INTEGER NUNIT
15 * ..
16 *
17 *
18 *> \par Purpose:
19 * =============
20 *>
21 *> \verbatim
22 *>
23 *> DERRRFP tests the error exits for the DOUBLE PRECISION driver routines
24 *> for solving linear systems of equations.
25 *>
26 *> DDRVRFP tests the DOUBLE PRECISION LAPACK RFP routines:
27 *> DTFSM, DTFTRI, DSFRK, DTFTTP, DTFTTR, DPFTRF, DPFTRS, DTPTTF,
28 *> DTPTTR, DTRTTF, and DTRTTP
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 double_lin
51 *
52 * =====================================================================
53  SUBROUTINE derrrfp( 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 * ..
71 * .. Local Arrays ..
72  DOUBLE PRECISION a( 1, 1), b( 1, 1)
73 * ..
74 * .. External Subroutines ..
75  EXTERNAL chkxer, dtfsm, dtftri, dsfrk, dtfttp, dtfttr,
77  + dtrttp
78 * ..
79 * .. Scalars in Common ..
80  LOGICAL lerr, ok
81  CHARACTER*32 srnamt
82  INTEGER infot, nout
83 * ..
84 * .. Common blocks ..
85  common / infoc / infot, nout, ok, lerr
86  common / srnamc / srnamt
87 * ..
88 * .. Executable Statements ..
89 *
90  nout = nunit
91  ok = .true.
92  a( 1, 1 ) = 1.0d+0
93  b( 1, 1 ) = 1.0d+0
94  alpha = 1.0d+0
95  beta = 1.0d+0
96 *
97  srnamt = 'DPFTRF'
98  infot = 1
99  CALL dpftrf( '/', 'U', 0, a, info )
100  CALL chkxer( 'DPFTRF', infot, nout, lerr, ok )
101  infot = 2
102  CALL dpftrf( 'N', '/', 0, a, info )
103  CALL chkxer( 'DPFTRF', infot, nout, lerr, ok )
104  infot = 3
105  CALL dpftrf( 'N', 'U', -1, a, info )
106  CALL chkxer( 'DPFTRF', infot, nout, lerr, ok )
107 *
108  srnamt = 'DPFTRS'
109  infot = 1
110  CALL dpftrs( '/', 'U', 0, 0, a, b, 1, info )
111  CALL chkxer( 'DPFTRS', infot, nout, lerr, ok )
112  infot = 2
113  CALL dpftrs( 'N', '/', 0, 0, a, b, 1, info )
114  CALL chkxer( 'DPFTRS', infot, nout, lerr, ok )
115  infot = 3
116  CALL dpftrs( 'N', 'U', -1, 0, a, b, 1, info )
117  CALL chkxer( 'DPFTRS', infot, nout, lerr, ok )
118  infot = 4
119  CALL dpftrs( 'N', 'U', 0, -1, a, b, 1, info )
120  CALL chkxer( 'DPFTRS', infot, nout, lerr, ok )
121  infot = 7
122  CALL dpftrs( 'N', 'U', 0, 0, a, b, 0, info )
123  CALL chkxer( 'DPFTRS', infot, nout, lerr, ok )
124 *
125  srnamt = 'DPFTRI'
126  infot = 1
127  CALL dpftri( '/', 'U', 0, a, info )
128  CALL chkxer( 'DPFTRI', infot, nout, lerr, ok )
129  infot = 2
130  CALL dpftri( 'N', '/', 0, a, info )
131  CALL chkxer( 'DPFTRI', infot, nout, lerr, ok )
132  infot = 3
133  CALL dpftri( 'N', 'U', -1, a, info )
134  CALL chkxer( 'DPFTRI', infot, nout, lerr, ok )
135 *
136  srnamt = 'DTFSM '
137  infot = 1
138  CALL dtfsm( '/', 'L', 'U', 'T', 'U', 0, 0, alpha, a, b, 1 )
139  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
140  infot = 2
141  CALL dtfsm( 'N', '/', 'U', 'T', 'U', 0, 0, alpha, a, b, 1 )
142  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
143  infot = 3
144  CALL dtfsm( 'N', 'L', '/', 'T', 'U', 0, 0, alpha, a, b, 1 )
145  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
146  infot = 4
147  CALL dtfsm( 'N', 'L', 'U', '/', 'U', 0, 0, alpha, a, b, 1 )
148  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
149  infot = 5
150  CALL dtfsm( 'N', 'L', 'U', 'T', '/', 0, 0, alpha, a, b, 1 )
151  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
152  infot = 6
153  CALL dtfsm( 'N', 'L', 'U', 'T', 'U', -1, 0, alpha, a, b, 1 )
154  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
155  infot = 7
156  CALL dtfsm( 'N', 'L', 'U', 'T', 'U', 0, -1, alpha, a, b, 1 )
157  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
158  infot = 11
159  CALL dtfsm( 'N', 'L', 'U', 'T', 'U', 0, 0, alpha, a, b, 0 )
160  CALL chkxer( 'DTFSM ', infot, nout, lerr, ok )
161 *
162  srnamt = 'DTFTRI'
163  infot = 1
164  CALL dtftri( '/', 'L', 'N', 0, a, info )
165  CALL chkxer( 'DTFTRI', infot, nout, lerr, ok )
166  infot = 2
167  CALL dtftri( 'N', '/', 'N', 0, a, info )
168  CALL chkxer( 'DTFTRI', infot, nout, lerr, ok )
169  infot = 3
170  CALL dtftri( 'N', 'L', '/', 0, a, info )
171  CALL chkxer( 'DTFTRI', infot, nout, lerr, ok )
172  infot = 4
173  CALL dtftri( 'N', 'L', 'N', -1, a, info )
174  CALL chkxer( 'DTFTRI', infot, nout, lerr, ok )
175 *
176  srnamt = 'DTFTTR'
177  infot = 1
178  CALL dtfttr( '/', 'U', 0, a, b, 1, info )
179  CALL chkxer( 'DTFTTR', infot, nout, lerr, ok )
180  infot = 2
181  CALL dtfttr( 'N', '/', 0, a, b, 1, info )
182  CALL chkxer( 'DTFTTR', infot, nout, lerr, ok )
183  infot = 3
184  CALL dtfttr( 'N', 'U', -1, a, b, 1, info )
185  CALL chkxer( 'DTFTTR', infot, nout, lerr, ok )
186  infot = 6
187  CALL dtfttr( 'N', 'U', 0, a, b, 0, info )
188  CALL chkxer( 'DTFTTR', infot, nout, lerr, ok )
189 *
190  srnamt = 'DTRTTF'
191  infot = 1
192  CALL dtrttf( '/', 'U', 0, a, 1, b, info )
193  CALL chkxer( 'DTRTTF', infot, nout, lerr, ok )
194  infot = 2
195  CALL dtrttf( 'N', '/', 0, a, 1, b, info )
196  CALL chkxer( 'DTRTTF', infot, nout, lerr, ok )
197  infot = 3
198  CALL dtrttf( 'N', 'U', -1, a, 1, b, info )
199  CALL chkxer( 'DTRTTF', infot, nout, lerr, ok )
200  infot = 5
201  CALL dtrttf( 'N', 'U', 0, a, 0, b, info )
202  CALL chkxer( 'DTRTTF', infot, nout, lerr, ok )
203 *
204  srnamt = 'DTFTTP'
205  infot = 1
206  CALL dtfttp( '/', 'U', 0, a, b, info )
207  CALL chkxer( 'DTFTTP', infot, nout, lerr, ok )
208  infot = 2
209  CALL dtfttp( 'N', '/', 0, a, b, info )
210  CALL chkxer( 'DTFTTP', infot, nout, lerr, ok )
211  infot = 3
212  CALL dtfttp( 'N', 'U', -1, a, b, info )
213  CALL chkxer( 'DTFTTP', infot, nout, lerr, ok )
214 *
215  srnamt = 'DTPTTF'
216  infot = 1
217  CALL dtpttf( '/', 'U', 0, a, b, info )
218  CALL chkxer( 'DTPTTF', infot, nout, lerr, ok )
219  infot = 2
220  CALL dtpttf( 'N', '/', 0, a, b, info )
221  CALL chkxer( 'DTPTTF', infot, nout, lerr, ok )
222  infot = 3
223  CALL dtpttf( 'N', 'U', -1, a, b, info )
224  CALL chkxer( 'DTPTTF', infot, nout, lerr, ok )
225 *
226  srnamt = 'DTRTTP'
227  infot = 1
228  CALL dtrttp( '/', 0, a, 1, b, info )
229  CALL chkxer( 'DTRTTP', infot, nout, lerr, ok )
230  infot = 2
231  CALL dtrttp( 'U', -1, a, 1, b, info )
232  CALL chkxer( 'DTRTTP', infot, nout, lerr, ok )
233  infot = 4
234  CALL dtrttp( 'U', 0, a, 0, b, info )
235  CALL chkxer( 'DTRTTP', infot, nout, lerr, ok )
236 *
237  srnamt = 'DTPTTR'
238  infot = 1
239  CALL dtpttr( '/', 0, a, b, 1, info )
240  CALL chkxer( 'DTPTTR', infot, nout, lerr, ok )
241  infot = 2
242  CALL dtpttr( 'U', -1, a, b, 1, info )
243  CALL chkxer( 'DTPTTR', infot, nout, lerr, ok )
244  infot = 5
245  CALL dtpttr( 'U', 0, a, b, 0, info )
246  CALL chkxer( 'DTPTTR', infot, nout, lerr, ok )
247 *
248  srnamt = 'DSFRK '
249  infot = 1
250  CALL dsfrk( '/', 'U', 'N', 0, 0, alpha, a, 1, beta, b )
251  CALL chkxer( 'DSFRK ', infot, nout, lerr, ok )
252  infot = 2
253  CALL dsfrk( 'N', '/', 'N', 0, 0, alpha, a, 1, beta, b )
254  CALL chkxer( 'DSFRK ', infot, nout, lerr, ok )
255  infot = 3
256  CALL dsfrk( 'N', 'U', '/', 0, 0, alpha, a, 1, beta, b )
257  CALL chkxer( 'DSFRK ', infot, nout, lerr, ok )
258  infot = 4
259  CALL dsfrk( 'N', 'U', 'N', -1, 0, alpha, a, 1, beta, b )
260  CALL chkxer( 'DSFRK ', infot, nout, lerr, ok )
261  infot = 5
262  CALL dsfrk( 'N', 'U', 'N', 0, -1, alpha, a, 1, beta, b )
263  CALL chkxer( 'DSFRK ', infot, nout, lerr, ok )
264  infot = 8
265  CALL dsfrk( 'N', 'U', 'N', 0, 0, alpha, a, 0, beta, b )
266  CALL chkxer( 'DSFRK ', infot, nout, lerr, ok )
267 *
268 * Print a summary line.
269 *
270  IF( ok ) THEN
271  WRITE( nout, fmt = 9999 )
272  ELSE
273  WRITE( nout, fmt = 9998 )
274  END IF
275 *
276  9999 format( 1x, 'DOUBLE PRECISION RFP routines passed the tests of ',
277  $ 'the error exits' )
278  9998 format( ' *** RFP routines failed the tests of the error ',
279  $ 'exits ***' )
280  return
281 *
282 * End of DERRRFP
283 *
284  END