1*> \brief \b DLABAD
2*
3*  =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6*            http://www.netlib.org/lapack/explore-html/
7*
8*> \htmlonly
9*> Download DLABAD + dependencies
10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlabad.f">
11*> [TGZ]</a>
12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlabad.f">
13*> [ZIP]</a>
14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlabad.f">
15*> [TXT]</a>
16*> \endhtmlonly
17*
18*  Definition:
19*  ===========
20*
21*       SUBROUTINE DLABAD( SMALL, LARGE )
22*
23*       .. Scalar Arguments ..
24*       DOUBLE PRECISION   LARGE, SMALL
25*       ..
26*
27*
28*> \par Purpose:
29*  =============
30*>
31*> \verbatim
32*>
33*> DLABAD takes as input the values computed by DLAMCH 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 DLAMCH.  This subroutine is needed because
39*> DLAMCH 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 DOUBLE PRECISION
49*>          On entry, the underflow threshold as computed by DLAMCH.
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 DOUBLE PRECISION
57*>          On entry, the overflow threshold as computed by DLAMCH.
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*> \date November 2011
71*
72*> \ingroup auxOTHERauxiliary
73*
74*  =====================================================================
75      SUBROUTINE DLABAD( SMALL, LARGE )
76*
77*  -- LAPACK auxiliary routine (version 3.4.0) --
78*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
79*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
80*     November 2011
81*
82*     .. Scalar Arguments ..
83      DOUBLE PRECISION   LARGE, SMALL
84*     ..
85*
86*  =====================================================================
87*
88*     .. Intrinsic Functions ..
89      INTRINSIC          LOG10, SQRT
90*     ..
91*     .. Executable Statements ..
92*
93*     If it looks like we're on a Cray, take the square root of
94*     SMALL and LARGE to avoid overflow and underflow problems.
95*
96      IF( LOG10( LARGE ).GT.2000.D0 ) THEN
97         SMALL = SQRT( SMALL )
98         LARGE = SQRT( LARGE )
99      END IF
100*
101      RETURN
102*
103*     End of DLABAD
104*
105      END
106