version 1.6, 2010/12/21 13:51:27
|
version 1.7, 2011/07/22 07:38:03
|
Line 18
|
Line 18
|
* .. Intrinsic Functions .. |
* .. Intrinsic Functions .. |
INTRINSIC CDABS,DCMPLX,DCONJG,DSQRT |
INTRINSIC CDABS,DCMPLX,DCONJG,DSQRT |
* .. |
* .. |
IF (CDABS(CA).NE.0.0d0) GO TO 10 |
IF (CDABS(CA).EQ.0.0d0) THEN |
C = 0.0d0 |
C = 0.0d0 |
S = (1.0d0,0.0d0) |
S = (1.0d0,0.0d0) |
CA = CB |
CA = CB |
GO TO 20 |
ELSE |
10 CONTINUE |
SCALE = CDABS(CA) + CDABS(CB) |
SCALE = CDABS(CA) + CDABS(CB) |
NORM = SCALE*DSQRT((CDABS(CA/DCMPLX(SCALE,0.0d0)))**2+ |
NORM = SCALE*DSQRT((CDABS(CA/DCMPLX(SCALE,0.0d0)))**2+ |
$ (CDABS(CB/DCMPLX(SCALE,0.0d0)))**2) |
+ (CDABS(CB/DCMPLX(SCALE,0.0d0)))**2) |
ALPHA = CA/CDABS(CA) |
ALPHA = CA/CDABS(CA) |
C = CDABS(CA)/NORM |
C = CDABS(CA)/NORM |
S = ALPHA*DCONJG(CB)/NORM |
S = ALPHA*DCONJG(CB)/NORM |
CA = ALPHA*NORM |
CA = ALPHA*NORM |
END IF |
20 CONTINUE |
|
RETURN |
RETURN |
END |
END |