version 1.6, 2010/12/21 13:51:25
|
version 1.7, 2011/07/22 07:38:01
|
Line 24
|
Line 24
|
ROE = DB |
ROE = DB |
IF (DABS(DA).GT.DABS(DB)) ROE = DA |
IF (DABS(DA).GT.DABS(DB)) ROE = DA |
SCALE = DABS(DA) + DABS(DB) |
SCALE = DABS(DA) + DABS(DB) |
IF (SCALE.NE.0.0d0) GO TO 10 |
IF (SCALE.EQ.0.0d0) THEN |
C = 1.0d0 |
C = 1.0d0 |
S = 0.0d0 |
S = 0.0d0 |
R = 0.0d0 |
R = 0.0d0 |
Z = 0.0d0 |
Z = 0.0d0 |
GO TO 20 |
ELSE |
10 R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2) |
R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2) |
R = DSIGN(1.0d0,ROE)*R |
R = DSIGN(1.0d0,ROE)*R |
C = DA/R |
C = DA/R |
S = DB/R |
S = DB/R |
Z = 1.0d0 |
Z = 1.0d0 |
IF (DABS(DA).GT.DABS(DB)) Z = S |
IF (DABS(DA).GT.DABS(DB)) Z = S |
IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C |
IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C |
20 DA = R |
END IF |
|
DA = R |
DB = Z |
DB = Z |
RETURN |
RETURN |
END |
END |