00001 SUBROUTINE CERRLS( 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 CHARACTER*2 C2
00035 INTEGER INFO, IRNK
00036 REAL RCOND
00037
00038
00039 INTEGER IP( NMAX )
00040 REAL RW( NMAX ), S( NMAX )
00041 COMPLEX A( NMAX, NMAX ), B( NMAX, NMAX ), W( NMAX )
00042
00043
00044 LOGICAL LSAMEN
00045 EXTERNAL LSAMEN
00046
00047
00048 EXTERNAL ALAESM, CGELS, CGELSD, CGELSS, CGELSX, CGELSY,
00049 $ CHKXER
00050
00051
00052 LOGICAL LERR, OK
00053 CHARACTER*32 SRNAMT
00054 INTEGER INFOT, NOUT
00055
00056
00057 COMMON / INFOC / INFOT, NOUT, OK, LERR
00058 COMMON / SRNAMC / SRNAMT
00059
00060
00061
00062 NOUT = NUNIT
00063 C2 = PATH( 2: 3 )
00064 A( 1, 1 ) = ( 1.0E+0, 0.0E+0 )
00065 A( 1, 2 ) = ( 2.0E+0, 0.0E+0 )
00066 A( 2, 2 ) = ( 3.0E+0, 0.0E+0 )
00067 A( 2, 1 ) = ( 4.0E+0, 0.0E+0 )
00068 OK = .TRUE.
00069 WRITE( NOUT, FMT = * )
00070
00071
00072
00073 IF( LSAMEN( 2, C2, 'LS' ) ) THEN
00074
00075
00076
00077 SRNAMT = 'CGELS '
00078 INFOT = 1
00079 CALL CGELS( '/', 0, 0, 0, A, 1, B, 1, W, 1, INFO )
00080 CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
00081 INFOT = 2
00082 CALL CGELS( 'N', -1, 0, 0, A, 1, B, 1, W, 1, INFO )
00083 CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
00084 INFOT = 3
00085 CALL CGELS( 'N', 0, -1, 0, A, 1, B, 1, W, 1, INFO )
00086 CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
00087 INFOT = 4
00088 CALL CGELS( 'N', 0, 0, -1, A, 1, B, 1, W, 1, INFO )
00089 CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
00090 INFOT = 6
00091 CALL CGELS( 'N', 2, 0, 0, A, 1, B, 2, W, 2, INFO )
00092 CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
00093 INFOT = 8
00094 CALL CGELS( 'N', 2, 0, 0, A, 2, B, 1, W, 2, INFO )
00095 CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
00096 INFOT = 10
00097 CALL CGELS( 'N', 1, 1, 0, A, 1, B, 1, W, 1, INFO )
00098 CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
00099
00100
00101
00102 SRNAMT = 'CGELSS'
00103 INFOT = 1
00104 CALL CGELSS( -1, 0, 0, A, 1, B, 1, S, RCOND, IRNK, W, 1, RW,
00105 $ INFO )
00106 CALL CHKXER( 'CGELSS', INFOT, NOUT, LERR, OK )
00107 INFOT = 2
00108 CALL CGELSS( 0, -1, 0, A, 1, B, 1, S, RCOND, IRNK, W, 1, RW,
00109 $ INFO )
00110 CALL CHKXER( 'CGELSS', INFOT, NOUT, LERR, OK )
00111 INFOT = 3
00112 CALL CGELSS( 0, 0, -1, A, 1, B, 1, S, RCOND, IRNK, W, 1, RW,
00113 $ INFO )
00114 CALL CHKXER( 'CGELSS', INFOT, NOUT, LERR, OK )
00115 INFOT = 5
00116 CALL CGELSS( 2, 0, 0, A, 1, B, 2, S, RCOND, IRNK, W, 2, RW,
00117 $ INFO )
00118 CALL CHKXER( 'CGELSS', INFOT, NOUT, LERR, OK )
00119 INFOT = 7
00120 CALL CGELSS( 2, 0, 0, A, 2, B, 1, S, RCOND, IRNK, W, 2, RW,
00121 $ INFO )
00122 CALL CHKXER( 'CGELSS', INFOT, NOUT, LERR, OK )
00123
00124
00125
00126 SRNAMT = 'CGELSX'
00127 INFOT = 1
00128 CALL CGELSX( -1, 0, 0, A, 1, B, 1, IP, RCOND, IRNK, W, RW,
00129 $ INFO )
00130 CALL CHKXER( 'CGELSX', INFOT, NOUT, LERR, OK )
00131 INFOT = 2
00132 CALL CGELSX( 0, -1, 0, A, 1, B, 1, IP, RCOND, IRNK, W, RW,
00133 $ INFO )
00134 CALL CHKXER( 'CGELSX', INFOT, NOUT, LERR, OK )
00135 INFOT = 3
00136 CALL CGELSX( 0, 0, -1, A, 1, B, 1, IP, RCOND, IRNK, W, RW,
00137 $ INFO )
00138 CALL CHKXER( 'CGELSX', INFOT, NOUT, LERR, OK )
00139 INFOT = 5
00140 CALL CGELSX( 2, 0, 0, A, 1, B, 2, IP, RCOND, IRNK, W, RW,
00141 $ INFO )
00142 CALL CHKXER( 'CGELSX', INFOT, NOUT, LERR, OK )
00143 INFOT = 7
00144 CALL CGELSX( 2, 0, 0, A, 2, B, 1, IP, RCOND, IRNK, W, RW,
00145 $ INFO )
00146 CALL CHKXER( 'CGELSX', INFOT, NOUT, LERR, OK )
00147
00148
00149
00150 SRNAMT = 'CGELSY'
00151 INFOT = 1
00152 CALL CGELSY( -1, 0, 0, A, 1, B, 1, IP, RCOND, IRNK, W, 10, RW,
00153 $ INFO )
00154 CALL CHKXER( 'CGELSY', INFOT, NOUT, LERR, OK )
00155 INFOT = 2
00156 CALL CGELSY( 0, -1, 0, A, 1, B, 1, IP, RCOND, IRNK, W, 10, RW,
00157 $ INFO )
00158 CALL CHKXER( 'CGELSY', INFOT, NOUT, LERR, OK )
00159 INFOT = 3
00160 CALL CGELSY( 0, 0, -1, A, 1, B, 1, IP, RCOND, IRNK, W, 10, RW,
00161 $ INFO )
00162 CALL CHKXER( 'CGELSY', INFOT, NOUT, LERR, OK )
00163 INFOT = 5
00164 CALL CGELSY( 2, 0, 0, A, 1, B, 2, IP, RCOND, IRNK, W, 10, RW,
00165 $ INFO )
00166 CALL CHKXER( 'CGELSY', INFOT, NOUT, LERR, OK )
00167 INFOT = 7
00168 CALL CGELSY( 2, 0, 0, A, 2, B, 1, IP, RCOND, IRNK, W, 10, RW,
00169 $ INFO )
00170 CALL CHKXER( 'CGELSY', INFOT, NOUT, LERR, OK )
00171 INFOT = 12
00172 CALL CGELSY( 0, 3, 0, A, 1, B, 3, IP, RCOND, IRNK, W, 1, RW,
00173 $ INFO )
00174 CALL CHKXER( 'CGELSY', INFOT, NOUT, LERR, OK )
00175
00176
00177
00178 SRNAMT = 'CGELSD'
00179 INFOT = 1
00180 CALL CGELSD( -1, 0, 0, A, 1, B, 1, S, RCOND, IRNK, W, 10,
00181 $ RW, IP, INFO )
00182 CALL CHKXER( 'CGELSD', INFOT, NOUT, LERR, OK )
00183 INFOT = 2
00184 CALL CGELSD( 0, -1, 0, A, 1, B, 1, S, RCOND, IRNK, W, 10,
00185 $ RW, IP, INFO )
00186 CALL CHKXER( 'CGELSD', INFOT, NOUT, LERR, OK )
00187 INFOT = 3
00188 CALL CGELSD( 0, 0, -1, A, 1, B, 1, S, RCOND, IRNK, W, 10,
00189 $ RW, IP, INFO )
00190 CALL CHKXER( 'CGELSD', INFOT, NOUT, LERR, OK )
00191 INFOT = 5
00192 CALL CGELSD( 2, 0, 0, A, 1, B, 2, S, RCOND, IRNK, W, 10,
00193 $ RW, IP, INFO )
00194 CALL CHKXER( 'CGELSD', INFOT, NOUT, LERR, OK )
00195 INFOT = 7
00196 CALL CGELSD( 2, 0, 0, A, 2, B, 1, S, RCOND, IRNK, W, 10,
00197 $ RW, IP, INFO )
00198 CALL CHKXER( 'CGELSD', INFOT, NOUT, LERR, OK )
00199 INFOT = 12
00200 CALL CGELSD( 2, 2, 1, A, 2, B, 2, S, RCOND, IRNK, W, 1,
00201 $ RW, IP, INFO )
00202 CALL CHKXER( 'CGELSD', INFOT, NOUT, LERR, OK )
00203 END IF
00204
00205
00206
00207 CALL ALAESM( PATH, OK, NOUT )
00208
00209 RETURN
00210
00211
00212
00213 END