![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
00001 *> \brief \b DGET31 00002 * 00003 * =========== DOCUMENTATION =========== 00004 * 00005 * Online html documentation available at 00006 * http://www.netlib.org/lapack/explore-html/ 00007 * 00008 * Definition: 00009 * =========== 00010 * 00011 * SUBROUTINE DGET31( RMAX, LMAX, NINFO, KNT ) 00012 * 00013 * .. Scalar Arguments .. 00014 * INTEGER KNT, LMAX 00015 * DOUBLE PRECISION RMAX 00016 * .. 00017 * .. Array Arguments .. 00018 * INTEGER NINFO( 2 ) 00019 * .. 00020 * 00021 * 00022 *> \par Purpose: 00023 * ============= 00024 *> 00025 *> \verbatim 00026 *> 00027 *> DGET31 tests DLALN2, a routine for solving 00028 *> 00029 *> (ca A - w D)X = sB 00030 *> 00031 *> where A is an NA by NA matrix (NA=1 or 2 only), w is a real (NW=1) or 00032 *> complex (NW=2) constant, ca is a real constant, D is an NA by NA real 00033 *> diagonal matrix, and B is an NA by NW matrix (when NW=2 the second 00034 *> column of B contains the imaginary part of the solution). The code 00035 *> returns X and s, where s is a scale factor, less than or equal to 1, 00036 *> which is chosen to avoid overflow in X. 00037 *> 00038 *> If any singular values of ca A-w D are less than another input 00039 *> parameter SMIN, they are perturbed up to SMIN. 00040 *> 00041 *> The test condition is that the scaled residual 00042 *> 00043 *> norm( (ca A-w D)*X - s*B ) / 00044 *> ( max( ulp*norm(ca A-w D), SMIN )*norm(X) ) 00045 *> 00046 *> should be on the order of 1. Here, ulp is the machine precision. 00047 *> Also, it is verified that SCALE is less than or equal to 1, and that 00048 *> XNORM = infinity-norm(X). 00049 *> \endverbatim 00050 * 00051 * Arguments: 00052 * ========== 00053 * 00054 *> \param[out] RMAX 00055 *> \verbatim 00056 *> RMAX is DOUBLE PRECISION 00057 *> Value of the largest test ratio. 00058 *> \endverbatim 00059 *> 00060 *> \param[out] LMAX 00061 *> \verbatim 00062 *> LMAX is INTEGER 00063 *> Example number where largest test ratio achieved. 00064 *> \endverbatim 00065 *> 00066 *> \param[out] NINFO 00067 *> \verbatim 00068 *> NINFO is INTEGER array, dimension (3) 00069 *> NINFO(1) = number of examples with INFO less than 0 00070 *> NINFO(2) = number of examples with INFO greater than 0 00071 *> \endverbatim 00072 *> 00073 *> \param[out] KNT 00074 *> \verbatim 00075 *> KNT is INTEGER 00076 *> Total number of examples tested. 00077 *> \endverbatim 00078 * 00079 * Authors: 00080 * ======== 00081 * 00082 *> \author Univ. of Tennessee 00083 *> \author Univ. of California Berkeley 00084 *> \author Univ. of Colorado Denver 00085 *> \author NAG Ltd. 00086 * 00087 *> \date November 2011 00088 * 00089 *> \ingroup double_eig 00090 * 00091 * ===================================================================== 00092 SUBROUTINE DGET31( RMAX, LMAX, NINFO, KNT ) 00093 * 00094 * -- LAPACK test routine (version 3.4.0) -- 00095 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 00096 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 00097 * November 2011 00098 * 00099 * .. Scalar Arguments .. 00100 INTEGER KNT, LMAX 00101 DOUBLE PRECISION RMAX 00102 * .. 00103 * .. Array Arguments .. 00104 INTEGER NINFO( 2 ) 00105 * .. 00106 * 00107 * ===================================================================== 00108 * 00109 * .. Parameters .. 00110 DOUBLE PRECISION ZERO, HALF, ONE 00111 PARAMETER ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0 ) 00112 DOUBLE PRECISION TWO, THREE, FOUR 00113 PARAMETER ( TWO = 2.0D0, THREE = 3.0D0, FOUR = 4.0D0 ) 00114 DOUBLE PRECISION SEVEN, TEN 00115 PARAMETER ( SEVEN = 7.0D0, TEN = 10.0D0 ) 00116 DOUBLE PRECISION TWNONE 00117 PARAMETER ( TWNONE = 21.0D0 ) 00118 * .. 00119 * .. Local Scalars .. 00120 INTEGER IA, IB, ICA, ID1, ID2, INFO, ISMIN, ITRANS, 00121 $ IWI, IWR, NA, NW 00122 DOUBLE PRECISION BIGNUM, CA, D1, D2, DEN, EPS, RES, SCALE, SMIN, 00123 $ SMLNUM, TMP, UNFL, WI, WR, XNORM 00124 * .. 00125 * .. Local Arrays .. 00126 LOGICAL LTRANS( 0: 1 ) 00127 DOUBLE PRECISION A( 2, 2 ), B( 2, 2 ), VAB( 3 ), VCA( 5 ), 00128 $ VDD( 4 ), VSMIN( 4 ), VWI( 4 ), VWR( 4 ), 00129 $ X( 2, 2 ) 00130 * .. 00131 * .. External Functions .. 00132 DOUBLE PRECISION DLAMCH 00133 EXTERNAL DLAMCH 00134 * .. 00135 * .. External Subroutines .. 00136 EXTERNAL DLABAD, DLALN2 00137 * .. 00138 * .. Intrinsic Functions .. 00139 INTRINSIC ABS, MAX, SQRT 00140 * .. 00141 * .. Data statements .. 00142 DATA LTRANS / .FALSE., .TRUE. / 00143 * .. 00144 * .. Executable Statements .. 00145 * 00146 * Get machine parameters 00147 * 00148 EPS = DLAMCH( 'P' ) 00149 UNFL = DLAMCH( 'U' ) 00150 SMLNUM = DLAMCH( 'S' ) / EPS 00151 BIGNUM = ONE / SMLNUM 00152 CALL DLABAD( SMLNUM, BIGNUM ) 00153 * 00154 * Set up test case parameters 00155 * 00156 VSMIN( 1 ) = SMLNUM 00157 VSMIN( 2 ) = EPS 00158 VSMIN( 3 ) = ONE / ( TEN*TEN ) 00159 VSMIN( 4 ) = ONE / EPS 00160 VAB( 1 ) = SQRT( SMLNUM ) 00161 VAB( 2 ) = ONE 00162 VAB( 3 ) = SQRT( BIGNUM ) 00163 VWR( 1 ) = ZERO 00164 VWR( 2 ) = HALF 00165 VWR( 3 ) = TWO 00166 VWR( 4 ) = ONE 00167 VWI( 1 ) = SMLNUM 00168 VWI( 2 ) = EPS 00169 VWI( 3 ) = ONE 00170 VWI( 4 ) = TWO 00171 VDD( 1 ) = SQRT( SMLNUM ) 00172 VDD( 2 ) = ONE 00173 VDD( 3 ) = TWO 00174 VDD( 4 ) = SQRT( BIGNUM ) 00175 VCA( 1 ) = ZERO 00176 VCA( 2 ) = SQRT( SMLNUM ) 00177 VCA( 3 ) = EPS 00178 VCA( 4 ) = HALF 00179 VCA( 5 ) = ONE 00180 * 00181 KNT = 0 00182 NINFO( 1 ) = 0 00183 NINFO( 2 ) = 0 00184 LMAX = 0 00185 RMAX = ZERO 00186 * 00187 * Begin test loop 00188 * 00189 DO 190 ID1 = 1, 4 00190 D1 = VDD( ID1 ) 00191 DO 180 ID2 = 1, 4 00192 D2 = VDD( ID2 ) 00193 DO 170 ICA = 1, 5 00194 CA = VCA( ICA ) 00195 DO 160 ITRANS = 0, 1 00196 DO 150 ISMIN = 1, 4 00197 SMIN = VSMIN( ISMIN ) 00198 * 00199 NA = 1 00200 NW = 1 00201 DO 30 IA = 1, 3 00202 A( 1, 1 ) = VAB( IA ) 00203 DO 20 IB = 1, 3 00204 B( 1, 1 ) = VAB( IB ) 00205 DO 10 IWR = 1, 4 00206 IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ. 00207 $ ONE ) THEN 00208 WR = VWR( IWR )*A( 1, 1 ) 00209 ELSE 00210 WR = VWR( IWR ) 00211 END IF 00212 WI = ZERO 00213 CALL DLALN2( LTRANS( ITRANS ), NA, NW, 00214 $ SMIN, CA, A, 2, D1, D2, B, 2, 00215 $ WR, WI, X, 2, SCALE, XNORM, 00216 $ INFO ) 00217 IF( INFO.LT.0 ) 00218 $ NINFO( 1 ) = NINFO( 1 ) + 1 00219 IF( INFO.GT.0 ) 00220 $ NINFO( 2 ) = NINFO( 2 ) + 1 00221 RES = ABS( ( CA*A( 1, 1 )-WR*D1 )* 00222 $ X( 1, 1 )-SCALE*B( 1, 1 ) ) 00223 IF( INFO.EQ.0 ) THEN 00224 DEN = MAX( EPS*( ABS( ( CA*A( 1, 00225 $ 1 )-WR*D1 )*X( 1, 1 ) ) ), 00226 $ SMLNUM ) 00227 ELSE 00228 DEN = MAX( SMIN*ABS( X( 1, 1 ) ), 00229 $ SMLNUM ) 00230 END IF 00231 RES = RES / DEN 00232 IF( ABS( X( 1, 1 ) ).LT.UNFL .AND. 00233 $ ABS( B( 1, 1 ) ).LE.SMLNUM* 00234 $ ABS( CA*A( 1, 1 )-WR*D1 ) )RES = ZERO 00235 IF( SCALE.GT.ONE ) 00236 $ RES = RES + ONE / EPS 00237 RES = RES + ABS( XNORM-ABS( X( 1, 1 ) ) ) 00238 $ / MAX( SMLNUM, XNORM ) / EPS 00239 IF( INFO.NE.0 .AND. INFO.NE.1 ) 00240 $ RES = RES + ONE / EPS 00241 KNT = KNT + 1 00242 IF( RES.GT.RMAX ) THEN 00243 LMAX = KNT 00244 RMAX = RES 00245 END IF 00246 10 CONTINUE 00247 20 CONTINUE 00248 30 CONTINUE 00249 * 00250 NA = 1 00251 NW = 2 00252 DO 70 IA = 1, 3 00253 A( 1, 1 ) = VAB( IA ) 00254 DO 60 IB = 1, 3 00255 B( 1, 1 ) = VAB( IB ) 00256 B( 1, 2 ) = -HALF*VAB( IB ) 00257 DO 50 IWR = 1, 4 00258 IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ. 00259 $ ONE ) THEN 00260 WR = VWR( IWR )*A( 1, 1 ) 00261 ELSE 00262 WR = VWR( IWR ) 00263 END IF 00264 DO 40 IWI = 1, 4 00265 IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. 00266 $ CA.EQ.ONE ) THEN 00267 WI = VWI( IWI )*A( 1, 1 ) 00268 ELSE 00269 WI = VWI( IWI ) 00270 END IF 00271 CALL DLALN2( LTRANS( ITRANS ), NA, NW, 00272 $ SMIN, CA, A, 2, D1, D2, B, 00273 $ 2, WR, WI, X, 2, SCALE, 00274 $ XNORM, INFO ) 00275 IF( INFO.LT.0 ) 00276 $ NINFO( 1 ) = NINFO( 1 ) + 1 00277 IF( INFO.GT.0 ) 00278 $ NINFO( 2 ) = NINFO( 2 ) + 1 00279 RES = ABS( ( CA*A( 1, 1 )-WR*D1 )* 00280 $ X( 1, 1 )+( WI*D1 )*X( 1, 2 )- 00281 $ SCALE*B( 1, 1 ) ) 00282 RES = RES + ABS( ( -WI*D1 )*X( 1, 1 )+ 00283 $ ( CA*A( 1, 1 )-WR*D1 )*X( 1, 2 )- 00284 $ SCALE*B( 1, 2 ) ) 00285 IF( INFO.EQ.0 ) THEN 00286 DEN = MAX( EPS*( MAX( ABS( CA*A( 1, 00287 $ 1 )-WR*D1 ), ABS( D1*WI ) )* 00288 $ ( ABS( X( 1, 1 ) )+ABS( X( 1, 00289 $ 2 ) ) ) ), SMLNUM ) 00290 ELSE 00291 DEN = MAX( SMIN*( ABS( X( 1, 00292 $ 1 ) )+ABS( X( 1, 2 ) ) ), 00293 $ SMLNUM ) 00294 END IF 00295 RES = RES / DEN 00296 IF( ABS( X( 1, 1 ) ).LT.UNFL .AND. 00297 $ ABS( X( 1, 2 ) ).LT.UNFL .AND. 00298 $ ABS( B( 1, 1 ) ).LE.SMLNUM* 00299 $ ABS( CA*A( 1, 1 )-WR*D1 ) ) 00300 $ RES = ZERO 00301 IF( SCALE.GT.ONE ) 00302 $ RES = RES + ONE / EPS 00303 RES = RES + ABS( XNORM- 00304 $ ABS( X( 1, 1 ) )- 00305 $ ABS( X( 1, 2 ) ) ) / 00306 $ MAX( SMLNUM, XNORM ) / EPS 00307 IF( INFO.NE.0 .AND. INFO.NE.1 ) 00308 $ RES = RES + ONE / EPS 00309 KNT = KNT + 1 00310 IF( RES.GT.RMAX ) THEN 00311 LMAX = KNT 00312 RMAX = RES 00313 END IF 00314 40 CONTINUE 00315 50 CONTINUE 00316 60 CONTINUE 00317 70 CONTINUE 00318 * 00319 NA = 2 00320 NW = 1 00321 DO 100 IA = 1, 3 00322 A( 1, 1 ) = VAB( IA ) 00323 A( 1, 2 ) = -THREE*VAB( IA ) 00324 A( 2, 1 ) = -SEVEN*VAB( IA ) 00325 A( 2, 2 ) = TWNONE*VAB( IA ) 00326 DO 90 IB = 1, 3 00327 B( 1, 1 ) = VAB( IB ) 00328 B( 2, 1 ) = -TWO*VAB( IB ) 00329 DO 80 IWR = 1, 4 00330 IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ. 00331 $ ONE ) THEN 00332 WR = VWR( IWR )*A( 1, 1 ) 00333 ELSE 00334 WR = VWR( IWR ) 00335 END IF 00336 WI = ZERO 00337 CALL DLALN2( LTRANS( ITRANS ), NA, NW, 00338 $ SMIN, CA, A, 2, D1, D2, B, 2, 00339 $ WR, WI, X, 2, SCALE, XNORM, 00340 $ INFO ) 00341 IF( INFO.LT.0 ) 00342 $ NINFO( 1 ) = NINFO( 1 ) + 1 00343 IF( INFO.GT.0 ) 00344 $ NINFO( 2 ) = NINFO( 2 ) + 1 00345 IF( ITRANS.EQ.1 ) THEN 00346 TMP = A( 1, 2 ) 00347 A( 1, 2 ) = A( 2, 1 ) 00348 A( 2, 1 ) = TMP 00349 END IF 00350 RES = ABS( ( CA*A( 1, 1 )-WR*D1 )* 00351 $ X( 1, 1 )+( CA*A( 1, 2 ) )* 00352 $ X( 2, 1 )-SCALE*B( 1, 1 ) ) 00353 RES = RES + ABS( ( CA*A( 2, 1 ) )* 00354 $ X( 1, 1 )+( CA*A( 2, 2 )-WR*D2 )* 00355 $ X( 2, 1 )-SCALE*B( 2, 1 ) ) 00356 IF( INFO.EQ.0 ) THEN 00357 DEN = MAX( EPS*( MAX( ABS( CA*A( 1, 00358 $ 1 )-WR*D1 )+ABS( CA*A( 1, 2 ) ), 00359 $ ABS( CA*A( 2, 1 ) )+ABS( CA*A( 2, 00360 $ 2 )-WR*D2 ) )*MAX( ABS( X( 1, 00361 $ 1 ) ), ABS( X( 2, 1 ) ) ) ), 00362 $ SMLNUM ) 00363 ELSE 00364 DEN = MAX( EPS*( MAX( SMIN / EPS, 00365 $ MAX( ABS( CA*A( 1, 00366 $ 1 )-WR*D1 )+ABS( CA*A( 1, 2 ) ), 00367 $ ABS( CA*A( 2, 1 ) )+ABS( CA*A( 2, 00368 $ 2 )-WR*D2 ) ) )*MAX( ABS( X( 1, 00369 $ 1 ) ), ABS( X( 2, 1 ) ) ) ), 00370 $ SMLNUM ) 00371 END IF 00372 RES = RES / DEN 00373 IF( ABS( X( 1, 1 ) ).LT.UNFL .AND. 00374 $ ABS( X( 2, 1 ) ).LT.UNFL .AND. 00375 $ ABS( B( 1, 1 ) )+ABS( B( 2, 1 ) ).LE. 00376 $ SMLNUM*( ABS( CA*A( 1, 00377 $ 1 )-WR*D1 )+ABS( CA*A( 1, 00378 $ 2 ) )+ABS( CA*A( 2, 00379 $ 1 ) )+ABS( CA*A( 2, 2 )-WR*D2 ) ) ) 00380 $ RES = ZERO 00381 IF( SCALE.GT.ONE ) 00382 $ RES = RES + ONE / EPS 00383 RES = RES + ABS( XNORM- 00384 $ MAX( ABS( X( 1, 1 ) ), ABS( X( 2, 00385 $ 1 ) ) ) ) / MAX( SMLNUM, XNORM ) / 00386 $ EPS 00387 IF( INFO.NE.0 .AND. INFO.NE.1 ) 00388 $ RES = RES + ONE / EPS 00389 KNT = KNT + 1 00390 IF( RES.GT.RMAX ) THEN 00391 LMAX = KNT 00392 RMAX = RES 00393 END IF 00394 80 CONTINUE 00395 90 CONTINUE 00396 100 CONTINUE 00397 * 00398 NA = 2 00399 NW = 2 00400 DO 140 IA = 1, 3 00401 A( 1, 1 ) = VAB( IA )*TWO 00402 A( 1, 2 ) = -THREE*VAB( IA ) 00403 A( 2, 1 ) = -SEVEN*VAB( IA ) 00404 A( 2, 2 ) = TWNONE*VAB( IA ) 00405 DO 130 IB = 1, 3 00406 B( 1, 1 ) = VAB( IB ) 00407 B( 2, 1 ) = -TWO*VAB( IB ) 00408 B( 1, 2 ) = FOUR*VAB( IB ) 00409 B( 2, 2 ) = -SEVEN*VAB( IB ) 00410 DO 120 IWR = 1, 4 00411 IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ. 00412 $ ONE ) THEN 00413 WR = VWR( IWR )*A( 1, 1 ) 00414 ELSE 00415 WR = VWR( IWR ) 00416 END IF 00417 DO 110 IWI = 1, 4 00418 IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. 00419 $ CA.EQ.ONE ) THEN 00420 WI = VWI( IWI )*A( 1, 1 ) 00421 ELSE 00422 WI = VWI( IWI ) 00423 END IF 00424 CALL DLALN2( LTRANS( ITRANS ), NA, NW, 00425 $ SMIN, CA, A, 2, D1, D2, B, 00426 $ 2, WR, WI, X, 2, SCALE, 00427 $ XNORM, INFO ) 00428 IF( INFO.LT.0 ) 00429 $ NINFO( 1 ) = NINFO( 1 ) + 1 00430 IF( INFO.GT.0 ) 00431 $ NINFO( 2 ) = NINFO( 2 ) + 1 00432 IF( ITRANS.EQ.1 ) THEN 00433 TMP = A( 1, 2 ) 00434 A( 1, 2 ) = A( 2, 1 ) 00435 A( 2, 1 ) = TMP 00436 END IF 00437 RES = ABS( ( CA*A( 1, 1 )-WR*D1 )* 00438 $ X( 1, 1 )+( CA*A( 1, 2 ) )* 00439 $ X( 2, 1 )+( WI*D1 )*X( 1, 2 )- 00440 $ SCALE*B( 1, 1 ) ) 00441 RES = RES + ABS( ( CA*A( 1, 00442 $ 1 )-WR*D1 )*X( 1, 2 )+ 00443 $ ( CA*A( 1, 2 ) )*X( 2, 2 )- 00444 $ ( WI*D1 )*X( 1, 1 )-SCALE* 00445 $ B( 1, 2 ) ) 00446 RES = RES + ABS( ( CA*A( 2, 1 ) )* 00447 $ X( 1, 1 )+( CA*A( 2, 2 )-WR*D2 )* 00448 $ X( 2, 1 )+( WI*D2 )*X( 2, 2 )- 00449 $ SCALE*B( 2, 1 ) ) 00450 RES = RES + ABS( ( CA*A( 2, 1 ) )* 00451 $ X( 1, 2 )+( CA*A( 2, 2 )-WR*D2 )* 00452 $ X( 2, 2 )-( WI*D2 )*X( 2, 1 )- 00453 $ SCALE*B( 2, 2 ) ) 00454 IF( INFO.EQ.0 ) THEN 00455 DEN = MAX( EPS*( MAX( ABS( CA*A( 1, 00456 $ 1 )-WR*D1 )+ABS( CA*A( 1, 00457 $ 2 ) )+ABS( WI*D1 ), 00458 $ ABS( CA*A( 2, 00459 $ 1 ) )+ABS( CA*A( 2, 00460 $ 2 )-WR*D2 )+ABS( WI*D2 ) )* 00461 $ MAX( ABS( X( 1, 00462 $ 1 ) )+ABS( X( 2, 1 ) ), 00463 $ ABS( X( 1, 2 ) )+ABS( X( 2, 00464 $ 2 ) ) ) ), SMLNUM ) 00465 ELSE 00466 DEN = MAX( EPS*( MAX( SMIN / EPS, 00467 $ MAX( ABS( CA*A( 1, 00468 $ 1 )-WR*D1 )+ABS( CA*A( 1, 00469 $ 2 ) )+ABS( WI*D1 ), 00470 $ ABS( CA*A( 2, 00471 $ 1 ) )+ABS( CA*A( 2, 00472 $ 2 )-WR*D2 )+ABS( WI*D2 ) ) )* 00473 $ MAX( ABS( X( 1, 00474 $ 1 ) )+ABS( X( 2, 1 ) ), 00475 $ ABS( X( 1, 2 ) )+ABS( X( 2, 00476 $ 2 ) ) ) ), SMLNUM ) 00477 END IF 00478 RES = RES / DEN 00479 IF( ABS( X( 1, 1 ) ).LT.UNFL .AND. 00480 $ ABS( X( 2, 1 ) ).LT.UNFL .AND. 00481 $ ABS( X( 1, 2 ) ).LT.UNFL .AND. 00482 $ ABS( X( 2, 2 ) ).LT.UNFL .AND. 00483 $ ABS( B( 1, 1 ) )+ 00484 $ ABS( B( 2, 1 ) ).LE.SMLNUM* 00485 $ ( ABS( CA*A( 1, 1 )-WR*D1 )+ 00486 $ ABS( CA*A( 1, 2 ) )+ABS( CA*A( 2, 00487 $ 1 ) )+ABS( CA*A( 2, 00488 $ 2 )-WR*D2 )+ABS( WI*D2 )+ABS( WI* 00489 $ D1 ) ) )RES = ZERO 00490 IF( SCALE.GT.ONE ) 00491 $ RES = RES + ONE / EPS 00492 RES = RES + ABS( XNORM- 00493 $ MAX( ABS( X( 1, 1 ) )+ABS( X( 1, 00494 $ 2 ) ), ABS( X( 2, 00495 $ 1 ) )+ABS( X( 2, 2 ) ) ) ) / 00496 $ MAX( SMLNUM, XNORM ) / EPS 00497 IF( INFO.NE.0 .AND. INFO.NE.1 ) 00498 $ RES = RES + ONE / EPS 00499 KNT = KNT + 1 00500 IF( RES.GT.RMAX ) THEN 00501 LMAX = KNT 00502 RMAX = RES 00503 END IF 00504 110 CONTINUE 00505 120 CONTINUE 00506 130 CONTINUE 00507 140 CONTINUE 00508 150 CONTINUE 00509 160 CONTINUE 00510 170 CONTINUE 00511 180 CONTINUE 00512 190 CONTINUE 00513 * 00514 RETURN 00515 * 00516 * End of DGET31 00517 * 00518 END