LAPACK  3.10.0
LAPACK: Linear Algebra PACKage
slabad.f
Go to the documentation of this file.
1 *> \brief \b SLABAD
2 *
3 * =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
7 *
8 *> \htmlonly
9 *> Download SLABAD + dependencies
10 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/slabad.f">
11 *> [TGZ]</a>
12 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/slabad.f">
13 *> [ZIP]</a>
14 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slabad.f">
15 *> [TXT]</a>
16 *> \endhtmlonly
17 *
18 * Definition:
19 * ===========
20 *
21 * SUBROUTINE SLABAD( SMALL, LARGE )
22 *
23 * .. Scalar Arguments ..
24 * REAL LARGE, SMALL
25 * ..
26 *
27 *
28 *> \par Purpose:
29 * =============
30 *>
31 *> \verbatim
32 *>
33 *> SLABAD takes as input the values computed by SLAMCH for underflow and
34 *> overflow, and returns the square root of each of these values if the
35 *> log of LARGE is sufficiently large. This subroutine is intended to
36 *> identify machines with a large exponent range, such as the Crays, and
37 *> redefine the underflow and overflow limits to be the square roots of
38 *> the values computed by SLAMCH. This subroutine is needed because
39 *> SLAMCH does not compensate for poor arithmetic in the upper half of
40 *> the exponent range, as is found on a Cray.
41 *> \endverbatim
42 *
43 * Arguments:
44 * ==========
45 *
46 *> \param[in,out] SMALL
47 *> \verbatim
48 *> SMALL is REAL
49 *> On entry, the underflow threshold as computed by SLAMCH.
50 *> On exit, if LOG10(LARGE) is sufficiently large, the square
51 *> root of SMALL, otherwise unchanged.
52 *> \endverbatim
53 *>
54 *> \param[in,out] LARGE
55 *> \verbatim
56 *> LARGE is REAL
57 *> On entry, the overflow threshold as computed by SLAMCH.
58 *> On exit, if LOG10(LARGE) is sufficiently large, the square
59 *> root of LARGE, otherwise unchanged.
60 *> \endverbatim
61 *
62 * Authors:
63 * ========
64 *
65 *> \author Univ. of Tennessee
66 *> \author Univ. of California Berkeley
67 *> \author Univ. of Colorado Denver
68 *> \author NAG Ltd.
69 *
70 *> \ingroup OTHERauxiliary
71 *
72 * =====================================================================
73  SUBROUTINE slabad( SMALL, LARGE )
74 *
75 * -- LAPACK auxiliary routine --
76 * -- LAPACK is a software package provided by Univ. of Tennessee, --
77 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
78 *
79 * .. Scalar Arguments ..
80  REAL LARGE, SMALL
81 * ..
82 *
83 * =====================================================================
84 *
85 * .. Intrinsic Functions ..
86  INTRINSIC log10, sqrt
87 * ..
88 * .. Executable Statements ..
89 *
90 * If it looks like we're on a Cray, take the square root of
91 * SMALL and LARGE to avoid overflow and underflow problems.
92 *
93  IF( log10( large ).GT.2000. ) THEN
94  small = sqrt( small )
95  large = sqrt( large )
96  END IF
97 *
98  RETURN
99 *
100 * End of SLABAD
101 *
102  END
subroutine slabad(SMALL, LARGE)
SLABAD
Definition: slabad.f:74