00001 SUBROUTINE ZERRLQ( 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, ZGELQ2, ZGELQF, ZGELQS, ZUNGL2,
00042 $ ZUNGLQ, ZUNML2, ZUNMLQ
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 = 'ZGELQF'
00081 INFOT = 1
00082 CALL ZGELQF( -1, 0, A, 1, B, W, 1, INFO )
00083 CALL CHKXER( 'ZGELQF', INFOT, NOUT, LERR, OK )
00084 INFOT = 2
00085 CALL ZGELQF( 0, -1, A, 1, B, W, 1, INFO )
00086 CALL CHKXER( 'ZGELQF', INFOT, NOUT, LERR, OK )
00087 INFOT = 4
00088 CALL ZGELQF( 2, 1, A, 1, B, W, 2, INFO )
00089 CALL CHKXER( 'ZGELQF', INFOT, NOUT, LERR, OK )
00090 INFOT = 7
00091 CALL ZGELQF( 2, 1, A, 2, B, W, 1, INFO )
00092 CALL CHKXER( 'ZGELQF', INFOT, NOUT, LERR, OK )
00093
00094
00095
00096 SRNAMT = 'ZGELQ2'
00097 INFOT = 1
00098 CALL ZGELQ2( -1, 0, A, 1, B, W, INFO )
00099 CALL CHKXER( 'ZGELQ2', INFOT, NOUT, LERR, OK )
00100 INFOT = 2
00101 CALL ZGELQ2( 0, -1, A, 1, B, W, INFO )
00102 CALL CHKXER( 'ZGELQ2', INFOT, NOUT, LERR, OK )
00103 INFOT = 4
00104 CALL ZGELQ2( 2, 1, A, 1, B, W, INFO )
00105 CALL CHKXER( 'ZGELQ2', INFOT, NOUT, LERR, OK )
00106
00107
00108
00109 SRNAMT = 'ZGELQS'
00110 INFOT = 1
00111 CALL ZGELQS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
00112 CALL CHKXER( 'ZGELQS', INFOT, NOUT, LERR, OK )
00113 INFOT = 2
00114 CALL ZGELQS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
00115 CALL CHKXER( 'ZGELQS', INFOT, NOUT, LERR, OK )
00116 INFOT = 2
00117 CALL ZGELQS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
00118 CALL CHKXER( 'ZGELQS', INFOT, NOUT, LERR, OK )
00119 INFOT = 3
00120 CALL ZGELQS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
00121 CALL CHKXER( 'ZGELQS', INFOT, NOUT, LERR, OK )
00122 INFOT = 5
00123 CALL ZGELQS( 2, 2, 0, A, 1, X, B, 2, W, 1, INFO )
00124 CALL CHKXER( 'ZGELQS', INFOT, NOUT, LERR, OK )
00125 INFOT = 8
00126 CALL ZGELQS( 1, 2, 0, A, 1, X, B, 1, W, 1, INFO )
00127 CALL CHKXER( 'ZGELQS', INFOT, NOUT, LERR, OK )
00128 INFOT = 10
00129 CALL ZGELQS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
00130 CALL CHKXER( 'ZGELQS', INFOT, NOUT, LERR, OK )
00131
00132
00133
00134 SRNAMT = 'ZUNGLQ'
00135 INFOT = 1
00136 CALL ZUNGLQ( -1, 0, 0, A, 1, X, W, 1, INFO )
00137 CALL CHKXER( 'ZUNGLQ', INFOT, NOUT, LERR, OK )
00138 INFOT = 2
00139 CALL ZUNGLQ( 0, -1, 0, A, 1, X, W, 1, INFO )
00140 CALL CHKXER( 'ZUNGLQ', INFOT, NOUT, LERR, OK )
00141 INFOT = 2
00142 CALL ZUNGLQ( 2, 1, 0, A, 2, X, W, 2, INFO )
00143 CALL CHKXER( 'ZUNGLQ', INFOT, NOUT, LERR, OK )
00144 INFOT = 3
00145 CALL ZUNGLQ( 0, 0, -1, A, 1, X, W, 1, INFO )
00146 CALL CHKXER( 'ZUNGLQ', INFOT, NOUT, LERR, OK )
00147 INFOT = 3
00148 CALL ZUNGLQ( 1, 1, 2, A, 1, X, W, 1, INFO )
00149 CALL CHKXER( 'ZUNGLQ', INFOT, NOUT, LERR, OK )
00150 INFOT = 5
00151 CALL ZUNGLQ( 2, 2, 0, A, 1, X, W, 2, INFO )
00152 CALL CHKXER( 'ZUNGLQ', INFOT, NOUT, LERR, OK )
00153 INFOT = 8
00154 CALL ZUNGLQ( 2, 2, 0, A, 2, X, W, 1, INFO )
00155 CALL CHKXER( 'ZUNGLQ', INFOT, NOUT, LERR, OK )
00156
00157
00158
00159 SRNAMT = 'ZUNGL2'
00160 INFOT = 1
00161 CALL ZUNGL2( -1, 0, 0, A, 1, X, W, INFO )
00162 CALL CHKXER( 'ZUNGL2', INFOT, NOUT, LERR, OK )
00163 INFOT = 2
00164 CALL ZUNGL2( 0, -1, 0, A, 1, X, W, INFO )
00165 CALL CHKXER( 'ZUNGL2', INFOT, NOUT, LERR, OK )
00166 INFOT = 2
00167 CALL ZUNGL2( 2, 1, 0, A, 2, X, W, INFO )
00168 CALL CHKXER( 'ZUNGL2', INFOT, NOUT, LERR, OK )
00169 INFOT = 3
00170 CALL ZUNGL2( 0, 0, -1, A, 1, X, W, INFO )
00171 CALL CHKXER( 'ZUNGL2', INFOT, NOUT, LERR, OK )
00172 INFOT = 3
00173 CALL ZUNGL2( 1, 1, 2, A, 1, X, W, INFO )
00174 CALL CHKXER( 'ZUNGL2', INFOT, NOUT, LERR, OK )
00175 INFOT = 5
00176 CALL ZUNGL2( 2, 2, 0, A, 1, X, W, INFO )
00177 CALL CHKXER( 'ZUNGL2', INFOT, NOUT, LERR, OK )
00178
00179
00180
00181 SRNAMT = 'ZUNMLQ'
00182 INFOT = 1
00183 CALL ZUNMLQ( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00184 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00185 INFOT = 2
00186 CALL ZUNMLQ( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00187 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00188 INFOT = 3
00189 CALL ZUNMLQ( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00190 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00191 INFOT = 4
00192 CALL ZUNMLQ( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
00193 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00194 INFOT = 5
00195 CALL ZUNMLQ( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
00196 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00197 INFOT = 5
00198 CALL ZUNMLQ( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
00199 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00200 INFOT = 5
00201 CALL ZUNMLQ( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
00202 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00203 INFOT = 7
00204 CALL ZUNMLQ( 'L', 'N', 2, 0, 2, A, 1, X, AF, 2, W, 1, INFO )
00205 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00206 INFOT = 7
00207 CALL ZUNMLQ( 'R', 'N', 0, 2, 2, A, 1, X, AF, 1, W, 1, INFO )
00208 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00209 INFOT = 10
00210 CALL ZUNMLQ( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, 1, INFO )
00211 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00212 INFOT = 12
00213 CALL ZUNMLQ( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00214 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00215 INFOT = 12
00216 CALL ZUNMLQ( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00217 CALL CHKXER( 'ZUNMLQ', INFOT, NOUT, LERR, OK )
00218
00219
00220
00221 SRNAMT = 'ZUNML2'
00222 INFOT = 1
00223 CALL ZUNML2( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00224 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00225 INFOT = 2
00226 CALL ZUNML2( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00227 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00228 INFOT = 3
00229 CALL ZUNML2( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
00230 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00231 INFOT = 4
00232 CALL ZUNML2( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
00233 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00234 INFOT = 5
00235 CALL ZUNML2( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
00236 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00237 INFOT = 5
00238 CALL ZUNML2( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
00239 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00240 INFOT = 5
00241 CALL ZUNML2( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
00242 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00243 INFOT = 7
00244 CALL ZUNML2( 'L', 'N', 2, 1, 2, A, 1, X, AF, 2, W, INFO )
00245 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00246 INFOT = 7
00247 CALL ZUNML2( 'R', 'N', 1, 2, 2, A, 1, X, AF, 1, W, INFO )
00248 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00249 INFOT = 10
00250 CALL ZUNML2( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, INFO )
00251 CALL CHKXER( 'ZUNML2', INFOT, NOUT, LERR, OK )
00252
00253
00254
00255 CALL ALAESM( PATH, OK, NOUT )
00256
00257 RETURN
00258
00259
00260
00261 END