LAPACK 3.3.1
Linear Algebra PACKage
|
00001 SUBROUTINE DERRPS( PATH, NUNIT ) 00002 * 00003 * -- LAPACK test routine (version 3.1) -- 00004 * Craig Lucas, University of Manchester / NAG Ltd. 00005 * October, 2008 00006 * 00007 * .. Scalar Arguments .. 00008 INTEGER NUNIT 00009 CHARACTER*3 PATH 00010 * .. 00011 * 00012 * Purpose 00013 * ======= 00014 * 00015 * DERRPS tests the error exits for the DOUBLE PRECISION routines 00016 * for DPSTRF. 00017 * 00018 * Arguments 00019 * ========= 00020 * 00021 * PATH (input) CHARACTER*3 00022 * The LAPACK path name for the routines to be tested. 00023 * 00024 * NUNIT (input) INTEGER 00025 * The unit number for output. 00026 * 00027 * ===================================================================== 00028 * 00029 * .. Parameters .. 00030 INTEGER NMAX 00031 PARAMETER ( NMAX = 4 ) 00032 * .. 00033 * .. Local Scalars .. 00034 INTEGER I, INFO, J 00035 * .. 00036 * .. Local Arrays .. 00037 DOUBLE PRECISION A( NMAX, NMAX ), WORK( 2*NMAX ) 00038 INTEGER PIV( NMAX ) 00039 * .. 00040 * .. External Subroutines .. 00041 EXTERNAL ALAESM, CHKXER, DPSTF2, DPSTRF 00042 * .. 00043 * .. Scalars in Common .. 00044 INTEGER INFOT, NOUT 00045 LOGICAL LERR, OK 00046 CHARACTER*32 SRNAMT 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 110 J = 1, NMAX 00063 DO 100 I = 1, NMAX 00064 A( I, J ) = 1.D0 / DBLE( I+J ) 00065 * 00066 100 CONTINUE 00067 PIV( J ) = J 00068 WORK( J ) = 0.D0 00069 WORK( NMAX+J ) = 0.D0 00070 * 00071 110 CONTINUE 00072 OK = .TRUE. 00073 * 00074 * 00075 * Test error exits of the routines that use the Cholesky 00076 * decomposition of a symmetric positive semidefinite matrix. 00077 * 00078 * DPSTRF 00079 * 00080 SRNAMT = 'DPSTRF' 00081 INFOT = 1 00082 CALL DPSTRF( '/', 0, A, 1, PIV, 1, -1.D0, WORK, INFO ) 00083 CALL CHKXER( 'DPSTRF', INFOT, NOUT, LERR, OK ) 00084 INFOT = 2 00085 CALL DPSTRF( 'U', -1, A, 1, PIV, 1, -1.D0, WORK, INFO ) 00086 CALL CHKXER( 'DPSTRF', INFOT, NOUT, LERR, OK ) 00087 INFOT = 4 00088 CALL DPSTRF( 'U', 2, A, 1, PIV, 1, -1.D0, WORK, INFO ) 00089 CALL CHKXER( 'DPSTRF', INFOT, NOUT, LERR, OK ) 00090 * 00091 * DPSTF2 00092 * 00093 SRNAMT = 'DPSTF2' 00094 INFOT = 1 00095 CALL DPSTF2( '/', 0, A, 1, PIV, 1, -1.D0, WORK, INFO ) 00096 CALL CHKXER( 'DPSTF2', INFOT, NOUT, LERR, OK ) 00097 INFOT = 2 00098 CALL DPSTF2( 'U', -1, A, 1, PIV, 1, -1.D0, WORK, INFO ) 00099 CALL CHKXER( 'DPSTF2', INFOT, NOUT, LERR, OK ) 00100 INFOT = 4 00101 CALL DPSTF2( 'U', 2, A, 1, PIV, 1, -1.D0, WORK, INFO ) 00102 CALL CHKXER( 'DPSTF2', INFOT, NOUT, LERR, OK ) 00103 * 00104 * 00105 * Print a summary line. 00106 * 00107 CALL ALAESM( PATH, OK, NOUT ) 00108 * 00109 RETURN 00110 * 00111 * End of DERRPS 00112 * 00113 END