version 1.7, 2010/12/21 13:51:25
|
version 1.8, 2011/07/22 07:38:01
|
Line 61
|
Line 61
|
* .. |
* .. |
* |
* |
DFLAG = DPARAM(1) |
DFLAG = DPARAM(1) |
IF (N.LE.0 .OR. (DFLAG+TWO.EQ.ZERO)) GO TO 140 |
IF (N.LE.0 .OR. (DFLAG+TWO.EQ.ZERO)) RETURN |
IF (.NOT. (INCX.EQ.INCY.AND.INCX.GT.0)) GO TO 70 |
IF (INCX.EQ.INCY.AND.INCX.GT.0) THEN |
* |
* |
NSTEPS = N*INCX |
NSTEPS = N*INCX |
IF (DFLAG.LT.ZERO) THEN |
IF (DFLAG.LT.ZERO) THEN |
GO TO 50 |
DH11 = DPARAM(2) |
ELSE IF (DFLAG.EQ.ZERO) THEN |
DH12 = DPARAM(4) |
GO TO 10 |
DH21 = DPARAM(3) |
|
DH22 = DPARAM(5) |
|
DO I = 1,NSTEPS,INCX |
|
W = DX(I) |
|
Z = DY(I) |
|
DX(I) = W*DH11 + Z*DH12 |
|
DY(I) = W*DH21 + Z*DH22 |
|
END DO |
|
ELSE IF (DFLAG.EQ.ZERO) THEN |
|
DH12 = DPARAM(4) |
|
DH21 = DPARAM(3) |
|
DO I = 1,NSTEPS,INCX |
|
W = DX(I) |
|
Z = DY(I) |
|
DX(I) = W + Z*DH12 |
|
DY(I) = W*DH21 + Z |
|
END DO |
|
ELSE |
|
DH11 = DPARAM(2) |
|
DH22 = DPARAM(5) |
|
DO I = 1,NSTEPS,INCX |
|
W = DX(I) |
|
Z = DY(I) |
|
DX(I) = W*DH11 + Z |
|
DY(I) = -W + DH22*Z |
|
END DO |
|
END IF |
ELSE |
ELSE |
GO TO 30 |
KX = 1 |
END IF |
KY = 1 |
10 CONTINUE |
IF (INCX.LT.0) KX = 1 + (1-N)*INCX |
DH12 = DPARAM(4) |
IF (INCY.LT.0) KY = 1 + (1-N)*INCY |
DH21 = DPARAM(3) |
|
DO 20 I = 1,NSTEPS,INCX |
|
W = DX(I) |
|
Z = DY(I) |
|
DX(I) = W + Z*DH12 |
|
DY(I) = W*DH21 + Z |
|
20 CONTINUE |
|
GO TO 140 |
|
30 CONTINUE |
|
DH11 = DPARAM(2) |
|
DH22 = DPARAM(5) |
|
DO 40 I = 1,NSTEPS,INCX |
|
W = DX(I) |
|
Z = DY(I) |
|
DX(I) = W*DH11 + Z |
|
DY(I) = -W + DH22*Z |
|
40 CONTINUE |
|
GO TO 140 |
|
50 CONTINUE |
|
DH11 = DPARAM(2) |
|
DH12 = DPARAM(4) |
|
DH21 = DPARAM(3) |
|
DH22 = DPARAM(5) |
|
DO 60 I = 1,NSTEPS,INCX |
|
W = DX(I) |
|
Z = DY(I) |
|
DX(I) = W*DH11 + Z*DH12 |
|
DY(I) = W*DH21 + Z*DH22 |
|
60 CONTINUE |
|
GO TO 140 |
|
70 CONTINUE |
|
KX = 1 |
|
KY = 1 |
|
IF (INCX.LT.0) KX = 1 + (1-N)*INCX |
|
IF (INCY.LT.0) KY = 1 + (1-N)*INCY |
|
* |
* |
IF (DFLAG.LT.ZERO) THEN |
IF (DFLAG.LT.ZERO) THEN |
GO TO 120 |
DH11 = DPARAM(2) |
ELSE IF (DFLAG.EQ.ZERO) THEN |
DH12 = DPARAM(4) |
GO TO 80 |
DH21 = DPARAM(3) |
ELSE |
DH22 = DPARAM(5) |
GO TO 100 |
DO I = 1,N |
|
W = DX(KX) |
|
Z = DY(KY) |
|
DX(KX) = W*DH11 + Z*DH12 |
|
DY(KY) = W*DH21 + Z*DH22 |
|
KX = KX + INCX |
|
KY = KY + INCY |
|
END DO |
|
ELSE IF (DFLAG.EQ.ZERO) THEN |
|
DH12 = DPARAM(4) |
|
DH21 = DPARAM(3) |
|
DO I = 1,N |
|
W = DX(KX) |
|
Z = DY(KY) |
|
DX(KX) = W + Z*DH12 |
|
DY(KY) = W*DH21 + Z |
|
KX = KX + INCX |
|
KY = KY + INCY |
|
END DO |
|
ELSE |
|
DH11 = DPARAM(2) |
|
DH22 = DPARAM(5) |
|
DO I = 1,N |
|
W = DX(KX) |
|
Z = DY(KY) |
|
DX(KX) = W*DH11 + Z |
|
DY(KY) = -W + DH22*Z |
|
KX = KX + INCX |
|
KY = KY + INCY |
|
END DO |
|
END IF |
END IF |
END IF |
80 CONTINUE |
|
DH12 = DPARAM(4) |
|
DH21 = DPARAM(3) |
|
DO 90 I = 1,N |
|
W = DX(KX) |
|
Z = DY(KY) |
|
DX(KX) = W + Z*DH12 |
|
DY(KY) = W*DH21 + Z |
|
KX = KX + INCX |
|
KY = KY + INCY |
|
90 CONTINUE |
|
GO TO 140 |
|
100 CONTINUE |
|
DH11 = DPARAM(2) |
|
DH22 = DPARAM(5) |
|
DO 110 I = 1,N |
|
W = DX(KX) |
|
Z = DY(KY) |
|
DX(KX) = W*DH11 + Z |
|
DY(KY) = -W + DH22*Z |
|
KX = KX + INCX |
|
KY = KY + INCY |
|
110 CONTINUE |
|
GO TO 140 |
|
120 CONTINUE |
|
DH11 = DPARAM(2) |
|
DH12 = DPARAM(4) |
|
DH21 = DPARAM(3) |
|
DH22 = DPARAM(5) |
|
DO 130 I = 1,N |
|
W = DX(KX) |
|
Z = DY(KY) |
|
DX(KX) = W*DH11 + Z*DH12 |
|
DY(KY) = W*DH21 + Z*DH22 |
|
KX = KX + INCX |
|
KY = KY + INCY |
|
130 CONTINUE |
|
140 CONTINUE |
|
RETURN |
RETURN |
END |
END |