92 SUBROUTINE sladiv( A, B, C, D, P, Q )
100 REAL a,
b, c, d, p, q
107 parameter( bs = 2.0e0 )
109 parameter( half = 0.5e0 )
111 parameter( two = 2.0e0 )
114 REAL aa, bb, cc, dd, ab, cd, s, ov, un, be, eps
132 ab = max( abs(a), abs(
b) )
133 cd = max( abs(c), abs(d) )
136 ov =
slamch(
'Overflow threshold' )
137 un =
slamch(
'Safe minimum' )
141 IF( ab >= half*ov )
THEN
146 IF( cd >= half*ov )
THEN
151 IF( ab <= un*bs/eps )
THEN
156 IF( cd <= un*bs/eps )
THEN
161 IF( abs( d ).LE.abs( c ) )
THEN
162 CALL
sladiv1(aa, bb, cc, dd, p, q)
164 CALL
sladiv1(bb, aa, dd, cc, p, q)
186 REAL a,
b, c, d, p, q
193 parameter( one = 1.0e0 )
205 t = one / (c + d * r)
224 REAL a,
b, c, d, r, t
231 parameter( zero = 0.0e0 )
240 if( br.NE.zero )
THEN
subroutine sladiv(A, B, C, D, P, Q)
SLADIV performs complex division in real arithmetic, avoiding unnecessary overflow.
REAL function slamch(CMACH)
SLAMCH
REAL function sladiv2(A, B, C, D, R, T)
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real b(3) integer i
subroutine sladiv1(A, B, C, D, P, Q)