1       SUBROUTINE ZDSCAL(N,DA,ZX,INCX)
 2 *     .. Scalar Arguments ..
 3       DOUBLE PRECISION DA
 4       INTEGER INCX,N
 5 *     ..
 6 *     .. Array Arguments ..
 7       DOUBLE COMPLEX ZX(*)
 8 *     ..
 9 *
10 *  Purpose
11 *  =======
12 *
13 *     ZDSCAL scales a vector by a constant.
14 *
15 *  Further Details
16 *  ===============
17 *
18 *     jack dongarra, 3/11/78.
19 *     modified 3/93 to return if incx .le. 0.
20 *     modified 12/3/93, array(1) declarations changed to array(*)
21 *
22 *  =====================================================================
23 *
24 *     .. Local Scalars ..
25       INTEGER I,NINCX
26 *     ..
27 *     .. Intrinsic Functions ..
28       INTRINSIC DCMPLX
29 *     ..
30       IF (N.LE.0 .OR. INCX.LE.0RETURN
31       IF (INCX.EQ.1THEN
32 *
33 *        code for increment equal to 1
34 *
35          DO I = 1,N
36             ZX(I) = DCMPLX(DA,0.0d0)*ZX(I)
37          END DO
38       ELSE
39 *
40 *        code for increment not equal to 1
41 *
42          NINCX = N*INCX
43          DO I = 1,NINCX,INCX
44             ZX(I) = DCMPLX(DA,0.0d0)*ZX(I)
45          END DO
46       END IF
47       RETURN
48       END