source: branches/iLoveclim/SOURCES/BLAS/slabad.f

Last change on this file was 22, checked in by roche, 9 years ago

Petites adaptations diverses du code pour compilation en gfortran. Ajout d un Makefile flexible a option pour choisir ifort ou gfortran.

File size: 3.0 KB
Line 
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*> \date November 2011
71*
72*> \ingroup auxOTHERauxiliary
73*
74*  =====================================================================
75      SUBROUTINE SLABAD( 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      REAL               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. ) THEN
97         SMALL = SQRT( SMALL )
98         LARGE = SQRT( LARGE )
99      END IF
100*
101      RETURN
102*
103*     End of SLABAD
104*
105      END
Note: See TracBrowser for help on using the repository browser.