00001 SUBROUTINE ZERRQL( 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*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00038 $ W( NMAX ), X( NMAX )
00039
00040
00041 EXTERNAL ALAESM, CHKXER, ZGEQL2, ZGEQLF, ZGEQLS, ZUNG2L,
00042 $ ZUNGQL, ZUNM2L, ZUNMQL
00043
00044
00045 LOGICAL LERR, OK
00046 CHARACTER*32 SRNAMT
00047 INTEGER INFOT, NOUT
00048
00049
00050 COMMON / INFOC / INFOT, NOUT, OK, LERR
00051 COMMON / SRNAMC / SRNAMT
00052
00053
00054 INTRINSIC DBLE, DCMPLX
00055
00056
00057
00058 NOUT = NUNIT
00059 WRITE( NOUT, FMT = * )
00060
00061
00062
00063 DO 20 J = 1, NMAX
00064 DO 10 I = 1, NMAX
00065 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00066 $ -1.D0 / DBLE( I+J ) )
00067 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00068 $ -1.D0 / DBLE( I+J ) )
00069 10 CONTINUE
00070 B( J ) = 0.D0
00071 W( J ) = 0.D0
00072 X( J ) = 0.D0
00073 20 CONTINUE
00074 OK = .TRUE.
00075
00076
00077
00078
00079
00080 SRNAMT = 'ZGEQLF'
00081 INFOT = 1
00082 CALL ZGEQLF( -1, 0, A, 1, B, W, 1, INFO )
00083 CALL CHKXER( 'ZGEQLF', INFOT, NOUT, LERR, OK )
00084 INFOT = 2
00085 CALL ZGEQLF( 0, -1, A, 1, B, W, 1, INFO )
00086 CALL CHKXER( 'ZGEQLF', INFOT, NOUT, LERR, OK )
00087 INFOT = 4
00088 CALL ZGEQLF( 2, 1, A, 1, B, W, 1, INFO )
00089 CALL CHKXER( 'ZGEQLF', INFOT, NOUT, LERR, OK )
00090 INFOT = 7
00091 CALL ZGEQLF( 1, 2, A, 1, B, W, 1, INFO )
00092 CALL CHKXER( 'ZGEQLF', INFOT, NOUT, LERR, OK )
00093
00094
00095
00096 SRNAMT = 'ZGEQL2'
00097 INFOT = 1
00098 CALL ZGEQL2( -1, 0, A, 1, B, W, INFO )
00099 CALL CHKXER( 'ZGEQL2', INFOT, NOUT, LERR, OK )
00100 INFOT = 2
00101 CALL ZGEQL2( 0, -1, A, 1, B, W, INFO )
00102 CALL CHKXER( 'ZGEQL2', INFOT, NOUT, LERR, OK )
00103 INFOT = 4
00104 CALL ZGEQL2( 2, 1, A, 1, B, W, INFO )
00105 CALL CHKXER( 'ZGEQL2', INFOT, NOUT, LERR, OK )
00106
00107
00108
00109 SRNAMT = 'ZGEQLS'
00110 INFOT = 1
00111 CALL ZGEQLS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
00112 CALL CHKXER( 'ZGEQLS', INFOT, NOUT, LERR, OK )
00113 INFOT = 2
00114 CALL ZGEQLS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
00115 CALL CHKXER( 'ZGEQLS', INFOT, NOUT, LERR, OK )
00116 INFOT = 2
00117 CALL ZGEQLS( 1, 2, 0, A, 1, X, B, 1, W, 1, INFO )
00118 CALL CHKXER( 'ZGEQLS', INFOT, NOUT, LERR, OK )
00119 INFOT = 3
00120 CALL ZGEQLS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
00121 CALL CHKXER( 'ZGEQLS', INFOT, NOUT, LERR, OK )
00122 INFOT = 5
00123 CALL ZGEQLS( 2, 1, 0, A, 1, X, B, 2, W, 1, INFO )
00124 CALL CHKXER( 'ZGEQLS', INFOT, NOUT, LERR, OK )
00125 INFOT = 8
00126 CALL ZGEQLS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
00127 CALL CHKXER( 'ZGEQLS', INFOT, NOUT, LERR, OK )
00128 INFOT = 10
00129 CALL ZGEQLS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
00130 CALL CHKXER( 'ZGEQLS', INFOT, NOUT, LERR, OK )
00131
00132
00133
00134 SRNAMT = 'ZUNGQL'
00135 INFOT = 1
00136 CALL ZUNGQL( -1, 0, 0, A, 1, X, W, 1, INFO )
00137 CALL CHKXER( 'ZUNGQL', INFOT, NOUT, LERR, OK )
00138 INFOT = 2
00139 CALL ZUNGQL( 0, -1, 0, A, 1, X, W, 1, INFO )
00140 CALL CHKXER( 'ZUNGQL', INFOT, NOUT, LERR, OK )
00141 INFOT = 2
00142 CALL ZUNGQL( 1, 2, 0, A, 1, X, W, 2, INFO )
00143 CALL CHKXER( 'ZUNGQL', INFOT, NOUT, LERR, OK )
00144 INFOT = 3
00145 CALL ZUNGQL( 0, 0, -1, A, 1, X, W, 1, INFO )
00146 CALL CHKXER( 'ZUNGQL', INFOT, NOUT, LERR, OK )
00147 INFOT = 3
00148 CALL ZUNGQL( 1, 1, 2, A, 1, X, W, 1, INFO )
00149 CALL CHKXER( 'ZUNGQL', INFOT, NOUT, LERR, OK )
00150 INFOT = 5
00151 CALL ZUNGQL( 2, 1, 0, A, 1, X, W, 1, INFO )
00152 CALL CHKXER( 'ZUNGQL', INFOT, NOUT, LERR, OK )
00153 INFOT = 8
00154 CALL ZUNGQL( 2, 2, 0, A, 2, X, W, 1, INFO )
00155 CALL CHKXER( 'ZUNGQL', INFOT, NOUT, LERR, OK )
00156
00157
00158
00159 SRNAMT = 'ZUNG2L'
00160 INFOT = 1
00161 CALL ZUNG2L( -1, 0, 0, A, 1, X, W, INFO )
00162 CALL CHKXER( 'ZUNG2L', INFOT, NOUT, LERR, OK )
00163 INFOT = 2
00164 CALL ZUNG2L( 0, -1, 0, A, 1, X, W, INFO )
00165 CALL CHKXER( 'ZUNG2L', INFOT, NOUT, LERR, OK )
00166 INFOT = 2
00167 CALL ZUNG2L( 1, 2, 0, A, 1, X, W, INFO )
00168 CALL CHKXER( 'ZUNG2L', INFOT, NOUT, LERR, OK )
00169 INFOT = 3
00170 CALL ZUNG2L( 0, 0, -1, A, 1, X, W, INFO )
00171 CALL CHKXER( 'ZUNG2L', INFOT, NOUT, LERR, OK )
00172 INFOT = 3
00173 CALL ZUNG2L( 2, 1, 2, A, 2, X, W, INFO )
00174 CALL CHKXER( 'ZUNG2L', INFOT, NOUT, LERR, OK )
00175 INFOT = 5
00176 CALL ZUNG2L( 2, 1, 0, A, 1, X, W, INFO )
00177 CALL CHKXER( 'ZUNG2L', INFOT, NOUT, LERR, OK )
00178
00179
00180
00181 SRNAMT = 'ZUNMQL'
00182 INFOT = 1
00183 CALL ZUNMQL( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00184 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00185 INFOT = 2
00186 CALL ZUNMQL( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00187 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00188 INFOT = 3
00189 CALL ZUNMQL( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00190 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00191 INFOT = 4
00192 CALL ZUNMQL( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
00193 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00194 INFOT = 5
00195 CALL ZUNMQL( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
00196 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00197 INFOT = 5
00198 CALL ZUNMQL( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
00199 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00200 INFOT = 5
00201 CALL ZUNMQL( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
00202 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00203 INFOT = 7
00204 CALL ZUNMQL( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00205 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00206 INFOT = 7
00207 CALL ZUNMQL( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00208 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00209 INFOT = 10
00210 CALL ZUNMQL( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, 1, INFO )
00211 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00212 INFOT = 12
00213 CALL ZUNMQL( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00214 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00215 INFOT = 12
00216 CALL ZUNMQL( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00217 CALL CHKXER( 'ZUNMQL', INFOT, NOUT, LERR, OK )
00218
00219
00220
00221 SRNAMT = 'ZUNM2L'
00222 INFOT = 1
00223 CALL ZUNM2L( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00224 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00225 INFOT = 2
00226 CALL ZUNM2L( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00227 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00228 INFOT = 3
00229 CALL ZUNM2L( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
00230 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00231 INFOT = 4
00232 CALL ZUNM2L( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
00233 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00234 INFOT = 5
00235 CALL ZUNM2L( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
00236 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00237 INFOT = 5
00238 CALL ZUNM2L( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
00239 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00240 INFOT = 5
00241 CALL ZUNM2L( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
00242 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00243 INFOT = 7
00244 CALL ZUNM2L( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, INFO )
00245 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00246 INFOT = 7
00247 CALL ZUNM2L( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, INFO )
00248 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00249 INFOT = 10
00250 CALL ZUNM2L( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, INFO )
00251 CALL CHKXER( 'ZUNM2L', INFOT, NOUT, LERR, OK )
00252
00253
00254
00255 CALL ALAESM( PATH, OK, NOUT )
00256
00257 RETURN
00258
00259
00260
00261 END