59 SUBROUTINE cerrge( PATH, NUNIT )
75 parameter ( nmax = 4 )
80 INTEGER i, info, j, n_err_bnds, nparams
81 REAL anrm, ccond, rcond, berr
85 REAL r( nmax ), r1( nmax ), r2( nmax ), cs( nmax ),
87 COMPLEX a( nmax, nmax ), af( nmax, nmax ), b( nmax ),
88 $ w( 2*nmax ), x( nmax ), err_bnds_n( nmax, 3 ),
89 $ err_bnds_c( nmax, 3 ), params( 1 )
107 COMMON / infoc / infot, nout, ok, lerr
108 COMMON / srnamc / srnamt
111 INTRINSIC cmplx, real
116 WRITE( nout, fmt = * )
123 a( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
124 af( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
140 IF(
lsamen( 2, c2,
'GE' ) )
THEN
146 CALL cgetrf( -1, 0, a, 1, ip, info )
147 CALL chkxer(
'CGETRF', infot, nout, lerr, ok )
149 CALL cgetrf( 0, -1, a, 1, ip, info )
150 CALL chkxer(
'CGETRF', infot, nout, lerr, ok )
152 CALL cgetrf( 2, 1, a, 1, ip, info )
153 CALL chkxer(
'CGETRF', infot, nout, lerr, ok )
159 CALL cgetf2( -1, 0, a, 1, ip, info )
160 CALL chkxer(
'CGETF2', infot, nout, lerr, ok )
162 CALL cgetf2( 0, -1, a, 1, ip, info )
163 CALL chkxer(
'CGETF2', infot, nout, lerr, ok )
165 CALL cgetf2( 2, 1, a, 1, ip, info )
166 CALL chkxer(
'CGETF2', infot, nout, lerr, ok )
172 CALL cgetri( -1, a, 1, ip, w, 1, info )
173 CALL chkxer(
'CGETRI', infot, nout, lerr, ok )
175 CALL cgetri( 2, a, 1, ip, w, 2, info )
176 CALL chkxer(
'CGETRI', infot, nout, lerr, ok )
178 CALL cgetri( 2, a, 2, ip, w, 1, info )
179 CALL chkxer(
'CGETRI', infot, nout, lerr, ok )
185 CALL cgetrs(
'/', 0, 0, a, 1, ip, b, 1, info )
186 CALL chkxer(
'CGETRS', infot, nout, lerr, ok )
188 CALL cgetrs(
'N', -1, 0, a, 1, ip, b, 1, info )
189 CALL chkxer(
'CGETRS', infot, nout, lerr, ok )
191 CALL cgetrs(
'N', 0, -1, a, 1, ip, b, 1, info )
192 CALL chkxer(
'CGETRS', infot, nout, lerr, ok )
194 CALL cgetrs(
'N', 2, 1, a, 1, ip, b, 2, info )
195 CALL chkxer(
'CGETRS', infot, nout, lerr, ok )
197 CALL cgetrs(
'N', 2, 1, a, 2, ip, b, 1, info )
198 CALL chkxer(
'CGETRS', infot, nout, lerr, ok )
204 CALL cgerfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
206 CALL chkxer(
'CGERFS', infot, nout, lerr, ok )
208 CALL cgerfs(
'N', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
210 CALL chkxer(
'CGERFS', infot, nout, lerr, ok )
212 CALL cgerfs(
'N', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
214 CALL chkxer(
'CGERFS', infot, nout, lerr, ok )
216 CALL cgerfs(
'N', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
218 CALL chkxer(
'CGERFS', infot, nout, lerr, ok )
220 CALL cgerfs(
'N', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
222 CALL chkxer(
'CGERFS', infot, nout, lerr, ok )
224 CALL cgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
226 CALL chkxer(
'CGERFS', infot, nout, lerr, ok )
228 CALL cgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
230 CALL chkxer(
'CGERFS', infot, nout, lerr, ok )
238 CALL cgerfsx(
'/', eq, 0, 0, a, 1, af, 1, ip, rs, cs, b, 1, x,
239 $ 1, rcond, berr, n_err_bnds, err_bnds_n,
240 $ err_bnds_c, nparams, params, w, r, info )
241 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
244 CALL cgerfsx(
'N', eq, 2, 1, a, 1, af, 2, ip, rs, cs, b, 2, x,
245 $ 2, rcond, berr, n_err_bnds, err_bnds_n,
246 $ err_bnds_c, nparams, params, w, r, info )
247 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
250 CALL cgerfsx(
'N', eq, -1, 0, a, 1, af, 1, ip, rs, cs, b, 1, x,
251 $ 1, rcond, berr, n_err_bnds, err_bnds_n,
252 $ err_bnds_c, nparams, params, w, r, info )
253 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
255 CALL cgerfsx(
'N', eq, 0, -1, a, 1, af, 1, ip, rs, cs, b, 1, x,
256 $ 1, rcond, berr, n_err_bnds, err_bnds_n,
257 $ err_bnds_c, nparams, params, w, r, info )
258 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
260 CALL cgerfsx(
'N', eq, 2, 1, a, 1, af, 2, ip, rs, cs, b, 2, x,
261 $ 2, rcond, berr, n_err_bnds, err_bnds_n,
262 $ err_bnds_c, nparams, params, w, r, info )
263 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
265 CALL cgerfsx(
'N', eq, 2, 1, a, 2, af, 1, ip, rs, cs, b, 2, x,
266 $ 2, rcond, berr, n_err_bnds, err_bnds_n,
267 $ err_bnds_c, nparams, params, w, r, info )
268 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
271 CALL cgerfsx(
'N', eq, 2, 1, a, 2, af, 2, ip, rs, cs, b, 1, x,
272 $ 2, rcond, berr, n_err_bnds, err_bnds_n,
273 $ err_bnds_c, nparams, params, w, r, info )
274 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
276 CALL cgerfsx(
'N', eq, 2, 1, a, 2, af, 2, ip, rs, cs, b, 2, x,
277 $ 1, rcond, berr, n_err_bnds, err_bnds_n,
278 $ err_bnds_c, nparams, params, w, r, info )
279 CALL chkxer(
'CGERFSX', infot, nout, lerr, ok )
285 CALL cgecon(
'/', 0, a, 1, anrm, rcond, w, r, info )
286 CALL chkxer(
'CGECON', infot, nout, lerr, ok )
288 CALL cgecon(
'1', -1, a, 1, anrm, rcond, w, r, info )
289 CALL chkxer(
'CGECON', infot, nout, lerr, ok )
291 CALL cgecon(
'1', 2, a, 1, anrm, rcond, w, r, info )
292 CALL chkxer(
'CGECON', infot, nout, lerr, ok )
298 CALL cgeequ( -1, 0, a, 1, r1, r2, rcond, ccond, anrm, info )
299 CALL chkxer(
'CGEEQU', infot, nout, lerr, ok )
301 CALL cgeequ( 0, -1, a, 1, r1, r2, rcond, ccond, anrm, info )
302 CALL chkxer(
'CGEEQU', infot, nout, lerr, ok )
304 CALL cgeequ( 2, 2, a, 1, r1, r2, rcond, ccond, anrm, info )
305 CALL chkxer(
'CGEEQU', infot, nout, lerr, ok )
311 CALL cgeequb( -1, 0, a, 1, r1, r2, rcond, ccond, anrm, info )
312 CALL chkxer(
'CGEEQUB', infot, nout, lerr, ok )
314 CALL cgeequb( 0, -1, a, 1, r1, r2, rcond, ccond, anrm, info )
315 CALL chkxer(
'CGEEQUB', infot, nout, lerr, ok )
317 CALL cgeequb( 2, 2, a, 1, r1, r2, rcond, ccond, anrm, info )
318 CALL chkxer(
'CGEEQUB', infot, nout, lerr, ok )
323 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
329 CALL cgbtrf( -1, 0, 0, 0, a, 1, ip, info )
330 CALL chkxer(
'CGBTRF', infot, nout, lerr, ok )
332 CALL cgbtrf( 0, -1, 0, 0, a, 1, ip, info )
333 CALL chkxer(
'CGBTRF', infot, nout, lerr, ok )
335 CALL cgbtrf( 1, 1, -1, 0, a, 1, ip, info )
336 CALL chkxer(
'CGBTRF', infot, nout, lerr, ok )
338 CALL cgbtrf( 1, 1, 0, -1, a, 1, ip, info )
339 CALL chkxer(
'CGBTRF', infot, nout, lerr, ok )
341 CALL cgbtrf( 2, 2, 1, 1, a, 3, ip, info )
342 CALL chkxer(
'CGBTRF', infot, nout, lerr, ok )
348 CALL cgbtf2( -1, 0, 0, 0, a, 1, ip, info )
349 CALL chkxer(
'CGBTF2', infot, nout, lerr, ok )
351 CALL cgbtf2( 0, -1, 0, 0, a, 1, ip, info )
352 CALL chkxer(
'CGBTF2', infot, nout, lerr, ok )
354 CALL cgbtf2( 1, 1, -1, 0, a, 1, ip, info )
355 CALL chkxer(
'CGBTF2', infot, nout, lerr, ok )
357 CALL cgbtf2( 1, 1, 0, -1, a, 1, ip, info )
358 CALL chkxer(
'CGBTF2', infot, nout, lerr, ok )
360 CALL cgbtf2( 2, 2, 1, 1, a, 3, ip, info )
361 CALL chkxer(
'CGBTF2', infot, nout, lerr, ok )
367 CALL cgbtrs(
'/', 0, 0, 0, 1, a, 1, ip, b, 1, info )
368 CALL chkxer(
'CGBTRS', infot, nout, lerr, ok )
370 CALL cgbtrs(
'N', -1, 0, 0, 1, a, 1, ip, b, 1, info )
371 CALL chkxer(
'CGBTRS', infot, nout, lerr, ok )
373 CALL cgbtrs(
'N', 1, -1, 0, 1, a, 1, ip, b, 1, info )
374 CALL chkxer(
'CGBTRS', infot, nout, lerr, ok )
376 CALL cgbtrs(
'N', 1, 0, -1, 1, a, 1, ip, b, 1, info )
377 CALL chkxer(
'CGBTRS', infot, nout, lerr, ok )
379 CALL cgbtrs(
'N', 1, 0, 0, -1, a, 1, ip, b, 1, info )
380 CALL chkxer(
'CGBTRS', infot, nout, lerr, ok )
382 CALL cgbtrs(
'N', 2, 1, 1, 1, a, 3, ip, b, 2, info )
383 CALL chkxer(
'CGBTRS', infot, nout, lerr, ok )
385 CALL cgbtrs(
'N', 2, 0, 0, 1, a, 1, ip, b, 1, info )
386 CALL chkxer(
'CGBTRS', infot, nout, lerr, ok )
392 CALL cgbrfs(
'/', 0, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
394 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
396 CALL cgbrfs(
'N', -1, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
398 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
400 CALL cgbrfs(
'N', 1, -1, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
402 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
404 CALL cgbrfs(
'N', 1, 0, -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
406 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
408 CALL cgbrfs(
'N', 1, 0, 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1,
410 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
412 CALL cgbrfs(
'N', 2, 1, 1, 1, a, 2, af, 4, ip, b, 2, x, 2, r1,
414 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
416 CALL cgbrfs(
'N', 2, 1, 1, 1, a, 3, af, 3, ip, b, 2, x, 2, r1,
418 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
420 CALL cgbrfs(
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 1, x, 2, r1,
422 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
424 CALL cgbrfs(
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 2, x, 1, r1,
426 CALL chkxer(
'CGBRFS', infot, nout, lerr, ok )
434 CALL cgbrfsx(
'/', eq, 0, 0, 0, 0, a, 1, af, 1, ip, rs, cs, b,
435 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n,
436 $ err_bnds_c, nparams, params, w, r, info )
437 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
440 CALL cgbrfsx(
'N', eq, 2, 1, 1, 1, a, 1, af, 2, ip, rs, cs, b,
441 $ 2, x, 2, rcond, berr, n_err_bnds, err_bnds_n,
442 $ err_bnds_c, nparams, params, w, r, info )
443 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
446 CALL cgbrfsx(
'N', eq, -1, 1, 1, 0, a, 1, af, 1, ip, rs, cs, b,
447 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n,
448 $ err_bnds_c, nparams, params, w, r, info )
449 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
452 CALL cgbrfsx(
'N', eq, 2, -1, 1, 1, a, 3, af, 4, ip, rs, cs, b,
453 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n,
454 $ err_bnds_c, nparams, params, w, r, info )
455 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
458 CALL cgbrfsx(
'N', eq, 2, 1, -1, 1, a, 3, af, 4, ip, rs, cs, b,
459 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n,
460 $ err_bnds_c, nparams, params, w, r, info )
461 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
463 CALL cgbrfsx(
'N', eq, 0, 0, 0, -1, a, 1, af, 1, ip, rs, cs, b,
464 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n,
465 $ err_bnds_c, nparams, params, w, r, info )
466 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
468 CALL cgbrfsx(
'N', eq, 2, 1, 1, 1, a, 1, af, 2, ip, rs, cs, b,
469 $ 2, x, 2, rcond, berr, n_err_bnds, err_bnds_n,
470 $ err_bnds_c, nparams, params, w, r, info )
471 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
473 CALL cgbrfsx(
'N', eq, 2, 1, 1, 1, a, 3, af, 3, ip, rs, cs, b,
474 $ 2, x, 2, rcond, berr, n_err_bnds, err_bnds_n,
475 $ err_bnds_c, nparams, params, w, r, info )
476 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
479 CALL cgbrfsx(
'N', eq, 2, 1, 1, 1, a, 3, af, 5, ip, rs, cs, b,
480 $ 1, x, 2, rcond, berr, n_err_bnds, err_bnds_n,
481 $ err_bnds_c, nparams, params, w, r, info )
482 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
484 CALL cgbrfsx(
'N', eq, 2, 1, 1, 1, a, 3, af, 5, ip, rs, cs, b,
485 $ 2, x, 1, rcond, berr, n_err_bnds, err_bnds_n,
486 $ err_bnds_c, nparams, params, w, r, info )
487 CALL chkxer(
'CGBRFSX', infot, nout, lerr, ok )
493 CALL cgbcon(
'/', 0, 0, 0, a, 1, ip, anrm, rcond, w, r, info )
494 CALL chkxer(
'CGBCON', infot, nout, lerr, ok )
496 CALL cgbcon(
'1', -1, 0, 0, a, 1, ip, anrm, rcond, w, r, info )
497 CALL chkxer(
'CGBCON', infot, nout, lerr, ok )
499 CALL cgbcon(
'1', 1, -1, 0, a, 1, ip, anrm, rcond, w, r, info )
500 CALL chkxer(
'CGBCON', infot, nout, lerr, ok )
502 CALL cgbcon(
'1', 1, 0, -1, a, 1, ip, anrm, rcond, w, r, info )
503 CALL chkxer(
'CGBCON', infot, nout, lerr, ok )
505 CALL cgbcon(
'1', 2, 1, 1, a, 3, ip, anrm, rcond, w, r, info )
506 CALL chkxer(
'CGBCON', infot, nout, lerr, ok )
512 CALL cgbequ( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
514 CALL chkxer(
'CGBEQU', infot, nout, lerr, ok )
516 CALL cgbequ( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
518 CALL chkxer(
'CGBEQU', infot, nout, lerr, ok )
520 CALL cgbequ( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
522 CALL chkxer(
'CGBEQU', infot, nout, lerr, ok )
524 CALL cgbequ( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
526 CALL chkxer(
'CGBEQU', infot, nout, lerr, ok )
528 CALL cgbequ( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
530 CALL chkxer(
'CGBEQU', infot, nout, lerr, ok )
536 CALL cgbequb( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
538 CALL chkxer(
'CGBEQUB', infot, nout, lerr, ok )
540 CALL cgbequb( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
542 CALL chkxer(
'CGBEQUB', infot, nout, lerr, ok )
544 CALL cgbequb( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
546 CALL chkxer(
'CGBEQUB', infot, nout, lerr, ok )
548 CALL cgbequb( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
550 CALL chkxer(
'CGBEQUB', infot, nout, lerr, ok )
552 CALL cgbequb( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
554 CALL chkxer(
'CGBEQUB', infot, nout, lerr, ok )
559 CALL alaesm( path, ok, nout )
subroutine cgbtrf(M, N, KL, KU, AB, LDAB, IPIV, INFO)
CGBTRF
subroutine cgetri(N, A, LDA, IPIV, WORK, LWORK, INFO)
CGETRI
subroutine cgerfs(TRANS, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CGERFS
logical function lsamen(N, CA, CB)
LSAMEN
subroutine cgerfsx(TRANS, EQUED, N, NRHS, A, LDA, AF, LDAF, IPIV, R, C, B, LDB, X, LDX, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, NPARAMS, PARAMS, WORK, RWORK, INFO)
CGERFSX
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine cgetrs(TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CGETRS
subroutine cgbequb(M, N, KL, KU, AB, LDAB, R, C, ROWCND, COLCND, AMAX, INFO)
CGBEQUB
subroutine cgbrfsx(TRANS, EQUED, N, KL, KU, NRHS, AB, LDAB, AFB, LDAFB, IPIV, R, C, B, LDB, X, LDX, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, NPARAMS, PARAMS, WORK, RWORK, INFO)
CGBRFSX
subroutine cgeequb(M, N, A, LDA, R, C, ROWCND, COLCND, AMAX, INFO)
CGEEQUB
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine cgeequ(M, N, A, LDA, R, C, ROWCND, COLCND, AMAX, INFO)
CGEEQU
subroutine cgbcon(NORM, N, KL, KU, AB, LDAB, IPIV, ANORM, RCOND, WORK, RWORK, INFO)
CGBCON
subroutine cgetrf(M, N, A, LDA, IPIV, INFO)
CGETRF
subroutine cgbequ(M, N, KL, KU, AB, LDAB, R, C, ROWCND, COLCND, AMAX, INFO)
CGBEQU
subroutine cgetf2(M, N, A, LDA, IPIV, INFO)
CGETF2 computes the LU factorization of a general m-by-n matrix using partial pivoting with row inter...
subroutine cgbrfs(TRANS, N, KL, KU, NRHS, AB, LDAB, AFB, LDAFB, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CGBRFS
subroutine cgecon(NORM, N, A, LDA, ANORM, RCOND, WORK, RWORK, INFO)
CGECON
subroutine cerrge(PATH, NUNIT)
CERRGE
subroutine cgbtf2(M, N, KL, KU, AB, LDAB, IPIV, INFO)
CGBTF2 computes the LU factorization of a general band matrix using the unblocked version of the algo...
subroutine cgbtrs(TRANS, N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO)
CGBTRS