93 integer,
parameter :: wp = kind(1.e0)
100 real(wp),
parameter :: zero = 0.0_wp
101 real(wp),
parameter :: one = 1.0_wp
104 real(wp),
parameter :: safmin = real(radix(0._wp),wp)**max( &
105 minexponent(0._wp)-1, &
106 1-maxexponent(0._wp) &
108 real(wp),
parameter :: safmax = real(radix(0._wp),wp)**max( &
109 1-minexponent(0._wp), &
110 maxexponent(0._wp)-1 &
114 real(wp) :: a, b, c, s
117 real(wp) :: anorm, bnorm, scl, sigma, r, z
121 if( bnorm == zero )
then
125 else if( anorm == zero )
then
131 scl = min( safmax, max( safmin, anorm, bnorm ) )
132 if( anorm > bnorm )
then
137 r = sigma*( scl*sqrt((a/scl)**2 + (b/scl)**2) )
140 if( anorm > bnorm )
then
142 else if( c /= zero )
then
subroutine srotg(a, b, c, s)
SROTG