version 1.1.1.1, 2010/01/26 15:22:45
|
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) 50,10,30 |
IF (DFLAG.LT.ZERO) THEN |
10 CONTINUE |
DH11 = DPARAM(2) |
DH12 = DPARAM(4) |
DH12 = DPARAM(4) |
DH21 = DPARAM(3) |
DH21 = DPARAM(3) |
DO 20 I = 1,NSTEPS,INCX |
DH22 = DPARAM(5) |
W = DX(I) |
DO I = 1,NSTEPS,INCX |
Z = DY(I) |
W = DX(I) |
DX(I) = W + Z*DH12 |
Z = DY(I) |
DY(I) = W*DH21 + Z |
DX(I) = W*DH11 + Z*DH12 |
20 CONTINUE |
DY(I) = W*DH21 + Z*DH22 |
GO TO 140 |
END DO |
30 CONTINUE |
ELSE IF (DFLAG.EQ.ZERO) THEN |
DH11 = DPARAM(2) |
DH12 = DPARAM(4) |
DH22 = DPARAM(5) |
DH21 = DPARAM(3) |
DO 40 I = 1,NSTEPS,INCX |
DO I = 1,NSTEPS,INCX |
W = DX(I) |
W = DX(I) |
Z = DY(I) |
Z = DY(I) |
DX(I) = W*DH11 + Z |
DX(I) = W + Z*DH12 |
DY(I) = -W + DH22*Z |
DY(I) = W*DH21 + Z |
40 CONTINUE |
END DO |
GO TO 140 |
ELSE |
50 CONTINUE |
DH11 = DPARAM(2) |
DH11 = DPARAM(2) |
DH22 = DPARAM(5) |
DH12 = DPARAM(4) |
DO I = 1,NSTEPS,INCX |
DH21 = DPARAM(3) |
W = DX(I) |
DH22 = DPARAM(5) |
Z = DY(I) |
DO 60 I = 1,NSTEPS,INCX |
DX(I) = W*DH11 + Z |
W = DX(I) |
DY(I) = -W + DH22*Z |
Z = DY(I) |
END DO |
DX(I) = W*DH11 + Z*DH12 |
END IF |
DY(I) = W*DH21 + Z*DH22 |
ELSE |
60 CONTINUE |
KX = 1 |
GO TO 140 |
KY = 1 |
70 CONTINUE |
IF (INCX.LT.0) KX = 1 + (1-N)*INCX |
KX = 1 |
IF (INCY.LT.0) KY = 1 + (1-N)*INCY |
KY = 1 |
|
IF (INCX.LT.0) KX = 1 + (1-N)*INCX |
|
IF (INCY.LT.0) KY = 1 + (1-N)*INCY |
|
* |
* |
IF (DFLAG) 120,80,100 |
IF (DFLAG.LT.ZERO) THEN |
80 CONTINUE |
DH11 = DPARAM(2) |
DH12 = DPARAM(4) |
DH12 = DPARAM(4) |
DH21 = DPARAM(3) |
DH21 = DPARAM(3) |
DO 90 I = 1,N |
DH22 = DPARAM(5) |
W = DX(KX) |
DO I = 1,N |
Z = DY(KY) |
W = DX(KX) |
DX(KX) = W + Z*DH12 |
Z = DY(KY) |
DY(KY) = W*DH21 + Z |
DX(KX) = W*DH11 + Z*DH12 |
KX = KX + INCX |
DY(KY) = W*DH21 + Z*DH22 |
KY = KY + INCY |
KX = KX + INCX |
90 CONTINUE |
KY = KY + INCY |
GO TO 140 |
END DO |
100 CONTINUE |
ELSE IF (DFLAG.EQ.ZERO) THEN |
DH11 = DPARAM(2) |
DH12 = DPARAM(4) |
DH22 = DPARAM(5) |
DH21 = DPARAM(3) |
DO 110 I = 1,N |
DO I = 1,N |
W = DX(KX) |
W = DX(KX) |
Z = DY(KY) |
Z = DY(KY) |
DX(KX) = W*DH11 + Z |
DX(KX) = W + Z*DH12 |
DY(KY) = -W + DH22*Z |
DY(KY) = W*DH21 + Z |
KX = KX + INCX |
KX = KX + INCX |
KY = KY + INCY |
KY = KY + INCY |
110 CONTINUE |
END DO |
GO TO 140 |
ELSE |
120 CONTINUE |
DH11 = DPARAM(2) |
DH11 = DPARAM(2) |
DH22 = DPARAM(5) |
DH12 = DPARAM(4) |
DO I = 1,N |
DH21 = DPARAM(3) |
W = DX(KX) |
DH22 = DPARAM(5) |
Z = DY(KY) |
DO 130 I = 1,N |
DX(KX) = W*DH11 + Z |
W = DX(KX) |
DY(KY) = -W + DH22*Z |
Z = DY(KY) |
KX = KX + INCX |
DX(KX) = W*DH11 + Z*DH12 |
KY = KY + INCY |
DY(KY) = W*DH21 + Z*DH22 |
END DO |
KX = KX + INCX |
END IF |
KY = KY + INCY |
END IF |
130 CONTINUE |
|
140 CONTINUE |
|
RETURN |
RETURN |
END |
END |