00001 SUBROUTINE CERRQR( PATH, NUNIT )
00002
00003
00004
00005
00006
00007
00008 CHARACTER*3 PATH
00009 INTEGER NUNIT
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 INTEGER NMAX
00031 PARAMETER ( NMAX = 2 )
00032
00033
00034 INTEGER I, INFO, J
00035
00036
00037 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00038 $ W( NMAX ), X( NMAX )
00039
00040
00041 EXTERNAL ALAESM, CGEQR2, CGEQR2P, CGEQRF, CGEQRFP,
00042 $ CGEQRS, CHKXER, CUNG2R, CUNGQR, CUNM2R,
00043 $ CUNMQR
00044
00045
00046 LOGICAL LERR, OK
00047 CHARACTER*32 SRNAMT
00048 INTEGER INFOT, NOUT
00049
00050
00051 COMMON / INFOC / INFOT, NOUT, OK, LERR
00052 COMMON / SRNAMC / SRNAMT
00053
00054
00055 INTRINSIC CMPLX, REAL
00056
00057
00058
00059 NOUT = NUNIT
00060 WRITE( NOUT, FMT = * )
00061
00062
00063
00064 DO 20 J = 1, NMAX
00065 DO 10 I = 1, NMAX
00066 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00067 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00068 10 CONTINUE
00069 B( J ) = 0.
00070 W( J ) = 0.
00071 X( J ) = 0.
00072 20 CONTINUE
00073 OK = .TRUE.
00074
00075
00076
00077
00078
00079 SRNAMT = 'CGEQRF'
00080 INFOT = 1
00081 CALL CGEQRF( -1, 0, A, 1, B, W, 1, INFO )
00082 CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00083 INFOT = 2
00084 CALL CGEQRF( 0, -1, A, 1, B, W, 1, INFO )
00085 CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00086 INFOT = 4
00087 CALL CGEQRF( 2, 1, A, 1, B, W, 1, INFO )
00088 CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00089 INFOT = 7
00090 CALL CGEQRF( 1, 2, A, 1, B, W, 1, INFO )
00091 CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00092
00093
00094
00095 SRNAMT = 'CGEQRFP'
00096 INFOT = 1
00097 CALL CGEQRFP( -1, 0, A, 1, B, W, 1, INFO )
00098 CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00099 INFOT = 2
00100 CALL CGEQRFP( 0, -1, A, 1, B, W, 1, INFO )
00101 CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00102 INFOT = 4
00103 CALL CGEQRFP( 2, 1, A, 1, B, W, 1, INFO )
00104 CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00105 INFOT = 7
00106 CALL CGEQRFP( 1, 2, A, 1, B, W, 1, INFO )
00107 CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00108
00109
00110
00111 SRNAMT = 'CGEQR2'
00112 INFOT = 1
00113 CALL CGEQR2( -1, 0, A, 1, B, W, INFO )
00114 CALL CHKXER( 'CGEQR2', INFOT, NOUT, LERR, OK )
00115 INFOT = 2
00116 CALL CGEQR2( 0, -1, A, 1, B, W, INFO )
00117 CALL CHKXER( 'CGEQR2', INFOT, NOUT, LERR, OK )
00118 INFOT = 4
00119 CALL CGEQR2( 2, 1, A, 1, B, W, INFO )
00120 CALL CHKXER( 'CGEQR2', INFOT, NOUT, LERR, OK )
00121
00122
00123
00124 SRNAMT = 'CGEQR2P'
00125 INFOT = 1
00126 CALL CGEQR2P( -1, 0, A, 1, B, W, INFO )
00127 CALL CHKXER( 'CGEQR2P', INFOT, NOUT, LERR, OK )
00128 INFOT = 2
00129 CALL CGEQR2P( 0, -1, A, 1, B, W, INFO )
00130 CALL CHKXER( 'CGEQR2P', INFOT, NOUT, LERR, OK )
00131 INFOT = 4
00132 CALL CGEQR2P( 2, 1, A, 1, B, W, INFO )
00133 CALL CHKXER( 'CGEQR2P', INFOT, NOUT, LERR, OK )
00134
00135
00136
00137 SRNAMT = 'CGEQRS'
00138 INFOT = 1
00139 CALL CGEQRS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
00140 CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00141 INFOT = 2
00142 CALL CGEQRS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
00143 CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00144 INFOT = 2
00145 CALL CGEQRS( 1, 2, 0, A, 2, X, B, 2, W, 1, INFO )
00146 CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00147 INFOT = 3
00148 CALL CGEQRS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
00149 CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00150 INFOT = 5
00151 CALL CGEQRS( 2, 1, 0, A, 1, X, B, 2, W, 1, INFO )
00152 CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00153 INFOT = 8
00154 CALL CGEQRS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
00155 CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00156 INFOT = 10
00157 CALL CGEQRS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
00158 CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00159
00160
00161
00162 SRNAMT = 'CUNGQR'
00163 INFOT = 1
00164 CALL CUNGQR( -1, 0, 0, A, 1, X, W, 1, INFO )
00165 CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00166 INFOT = 2
00167 CALL CUNGQR( 0, -1, 0, A, 1, X, W, 1, INFO )
00168 CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00169 INFOT = 2
00170 CALL CUNGQR( 1, 2, 0, A, 1, X, W, 2, INFO )
00171 CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00172 INFOT = 3
00173 CALL CUNGQR( 0, 0, -1, A, 1, X, W, 1, INFO )
00174 CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00175 INFOT = 3
00176 CALL CUNGQR( 1, 1, 2, A, 1, X, W, 1, INFO )
00177 CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00178 INFOT = 5
00179 CALL CUNGQR( 2, 2, 0, A, 1, X, W, 2, INFO )
00180 CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00181 INFOT = 8
00182 CALL CUNGQR( 2, 2, 0, A, 2, X, W, 1, INFO )
00183 CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00184
00185
00186
00187 SRNAMT = 'CUNG2R'
00188 INFOT = 1
00189 CALL CUNG2R( -1, 0, 0, A, 1, X, W, INFO )
00190 CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00191 INFOT = 2
00192 CALL CUNG2R( 0, -1, 0, A, 1, X, W, INFO )
00193 CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00194 INFOT = 2
00195 CALL CUNG2R( 1, 2, 0, A, 1, X, W, INFO )
00196 CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00197 INFOT = 3
00198 CALL CUNG2R( 0, 0, -1, A, 1, X, W, INFO )
00199 CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00200 INFOT = 3
00201 CALL CUNG2R( 2, 1, 2, A, 2, X, W, INFO )
00202 CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00203 INFOT = 5
00204 CALL CUNG2R( 2, 1, 0, A, 1, X, W, INFO )
00205 CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00206
00207
00208
00209 SRNAMT = 'CUNMQR'
00210 INFOT = 1
00211 CALL CUNMQR( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00212 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00213 INFOT = 2
00214 CALL CUNMQR( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00215 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00216 INFOT = 3
00217 CALL CUNMQR( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00218 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00219 INFOT = 4
00220 CALL CUNMQR( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
00221 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00222 INFOT = 5
00223 CALL CUNMQR( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
00224 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00225 INFOT = 5
00226 CALL CUNMQR( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
00227 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00228 INFOT = 5
00229 CALL CUNMQR( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
00230 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00231 INFOT = 7
00232 CALL CUNMQR( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00233 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00234 INFOT = 7
00235 CALL CUNMQR( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00236 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00237 INFOT = 10
00238 CALL CUNMQR( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, 1, INFO )
00239 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00240 INFOT = 12
00241 CALL CUNMQR( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00242 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00243 INFOT = 12
00244 CALL CUNMQR( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00245 CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00246
00247
00248
00249 SRNAMT = 'CUNM2R'
00250 INFOT = 1
00251 CALL CUNM2R( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00252 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00253 INFOT = 2
00254 CALL CUNM2R( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00255 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00256 INFOT = 3
00257 CALL CUNM2R( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
00258 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00259 INFOT = 4
00260 CALL CUNM2R( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
00261 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00262 INFOT = 5
00263 CALL CUNM2R( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
00264 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00265 INFOT = 5
00266 CALL CUNM2R( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
00267 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00268 INFOT = 5
00269 CALL CUNM2R( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
00270 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00271 INFOT = 7
00272 CALL CUNM2R( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, INFO )
00273 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00274 INFOT = 7
00275 CALL CUNM2R( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, INFO )
00276 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00277 INFOT = 10
00278 CALL CUNM2R( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, INFO )
00279 CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00280
00281
00282
00283 CALL ALAESM( PATH, OK, NOUT )
00284
00285 RETURN
00286
00287
00288
00289 END