`01: `**SUBROUTINE** **SLABAD**( SMALL, LARGE )
02: ***
03: ** -- LAPACK auxiliary routine (version 3.2) --*
04: ** -- LAPACK is a software package provided by Univ. of Tennessee, --*
05: ** -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--*
06: ** November 2006*
07: ***
08: ** .. Scalar Arguments ..*
09: REAL LARGE, SMALL
10: ** ..*
11: ***
12: ** Purpose*
13: ** =======*
14: ***
15: ** SLABAD takes as input the values computed by SLAMCH for underflow and*
16: ** overflow, and returns the square root of each of these values if the*
17: ** log of LARGE is sufficiently large. This subroutine is intended to*
18: ** identify machines with a large exponent range, such as the Crays, and*
19: ** redefine the underflow and overflow limits to be the square roots of*
20: ** the values computed by SLAMCH. This subroutine is needed because*
21: ** SLAMCH does not compensate for poor arithmetic in the upper half of*
22: ** the exponent range, as is found on a Cray.*
23: ***
24: ** Arguments*
25: ** =========*
26: ***
27: ** SMALL (input/output) REAL*
28: ** On entry, the underflow threshold as computed by SLAMCH.*
29: ** On exit, if LOG10(LARGE) is sufficiently large, the square*
30: ** root of SMALL, otherwise unchanged.*
31: ***
32: ** LARGE (input/output) REAL*
33: ** On entry, the overflow threshold as computed by SLAMCH.*
34: ** On exit, if LOG10(LARGE) is sufficiently large, the square*
35: ** root of LARGE, otherwise unchanged.*
36: ***
37: ** =====================================================================*
38: ***
39: ** .. Intrinsic Functions ..*
40: **INTRINSIC** LOG10, SQRT
41: ** ..*
42: ** .. Executable Statements ..*
43: ***
44: ** If it looks like we're on a Cray, take the square root of*
45: ** SMALL and LARGE to avoid overflow and underflow problems.*
46: ***
47: **IF**( **LOG10**( LARGE ).GT.2000. ) **THEN**
48: SMALL = **SQRT**( SMALL )
49: LARGE = **SQRT**( LARGE )
50: **END** **IF**
51: ***
52: **RETURN**
53: ***
54: ** End of SLABAD*
55: ***
56: **END**
57: