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