LAPACK 3.3.1
Linear Algebra PACKage
|
00001 SUBROUTINE ZERRAC( NUNIT ) 00002 IMPLICIT NONE 00003 * 00004 * -- LAPACK test routine (version 3.1.2) -- 00005 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. 00006 * May 2007 00007 * 00008 * .. Scalar Arguments .. 00009 INTEGER NUNIT 00010 * .. 00011 * 00012 * Purpose 00013 * ======= 00014 * 00015 * ZERRPX tests the error exits for ZCPOSV. 00016 * 00017 * Arguments 00018 * ========= 00019 * 00020 * NUNIT (input) INTEGER 00021 * The unit number for output. 00022 * 00023 * ===================================================================== 00024 * 00025 * .. Parameters .. 00026 INTEGER NMAX 00027 PARAMETER ( NMAX = 4 ) 00028 * .. 00029 * .. Local Scalars .. 00030 INTEGER I, INFO, ITER, J 00031 * .. 00032 * .. Local Arrays .. 00033 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 00034 $ C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), 00035 $ W( 2*NMAX ), X( NMAX ) 00036 DOUBLE PRECISION RWORK( NMAX ) 00037 COMPLEX*16 WORK(NMAX*NMAX) 00038 COMPLEX SWORK(NMAX*NMAX) 00039 * .. 00040 * .. External Subroutines .. 00041 EXTERNAL CHKXER, ZCPOSV 00042 * .. 00043 * .. Scalars in Common .. 00044 LOGICAL LERR, OK 00045 CHARACTER*32 SRNAMT 00046 INTEGER INFOT, NOUT 00047 * .. 00048 * .. Common blocks .. 00049 COMMON / INFOC / INFOT, NOUT, OK, LERR 00050 COMMON / SRNAMC / SRNAMT 00051 * .. 00052 * .. Intrinsic Functions .. 00053 INTRINSIC DBLE 00054 * .. 00055 * .. Executable Statements .. 00056 * 00057 NOUT = NUNIT 00058 WRITE( NOUT, FMT = * ) 00059 * 00060 * Set the variables to innocuous values. 00061 * 00062 DO 20 J = 1, NMAX 00063 DO 10 I = 1, NMAX 00064 A( I, J ) = 1.D0 / DBLE( I+J ) 00065 AF( I, J ) = 1.D0 / DBLE( I+J ) 00066 10 CONTINUE 00067 B( J ) = 0.D0 00068 R1( J ) = 0.D0 00069 R2( J ) = 0.D0 00070 W( J ) = 0.D0 00071 X( J ) = 0.D0 00072 C( J ) = 0.D0 00073 R( J ) = 0.D0 00074 20 CONTINUE 00075 OK = .TRUE. 00076 * 00077 SRNAMT = 'ZCPOSV' 00078 INFOT = 1 00079 CALL ZCPOSV('/',0,0,A,1,B,1,X,1,WORK,SWORK,RWORK,ITER,INFO) 00080 CALL CHKXER( 'ZCPOSV', INFOT, NOUT, LERR, OK ) 00081 INFOT = 2 00082 CALL ZCPOSV('U',-1,0,A,1,B,1,X,1,WORK,SWORK,RWORK,ITER,INFO) 00083 CALL CHKXER( 'ZCPOSV', INFOT, NOUT, LERR, OK ) 00084 INFOT = 3 00085 CALL ZCPOSV('U',0,-1,A,1,B,1,X,1,WORK,SWORK,RWORK,ITER,INFO) 00086 CALL CHKXER( 'ZCPOSV', INFOT, NOUT, LERR, OK ) 00087 INFOT = 5 00088 CALL ZCPOSV('U',2,1,A,1,B,2,X,2,WORK,SWORK,RWORK,ITER,INFO) 00089 CALL CHKXER( 'ZCPOSV', INFOT, NOUT, LERR, OK ) 00090 INFOT = 7 00091 CALL ZCPOSV('U',2,1,A,2,B,1,X,2,WORK,SWORK,RWORK,ITER,INFO) 00092 CALL CHKXER( 'ZCPOSV', INFOT, NOUT, LERR, OK ) 00093 INFOT = 9 00094 CALL ZCPOSV('U',2,1,A,2,B,2,X,1,WORK,SWORK,RWORK,ITER,INFO) 00095 CALL CHKXER( 'ZCPOSV', INFOT, NOUT, LERR, OK ) 00096 * 00097 * Print a summary line. 00098 * 00099 IF( OK ) THEN 00100 WRITE( NOUT, FMT = 9999 )'ZCPOSV' 00101 ELSE 00102 WRITE( NOUT, FMT = 9998 )'ZCPOSV' 00103 END IF 00104 * 00105 9999 FORMAT( 1X, A6, ' drivers passed the tests of the error exits' ) 00106 9998 FORMAT( ' *** ', A6, ' drivers failed the tests of the error ', 00107 $ 'exits ***' ) 00108 * 00109 RETURN 00110 * 00111 * End of ZERRAC 00112 * 00113 END