1      SUBROUTINE DCPDRV (C,NC,D,ND)
2c Copyright (c) 1996 California Institute of Technology, Pasadena, CA.
3c ALL RIGHTS RESERVED.
4c Based on Government Sponsored Research NAS7-03001.
5C>> 1994-11-11 DCPDRV Krogh   Declared all vars.
6C>> 1994-10-20 DCPDRV Krogh  Changes to use M77CON
7C>> 1987-12-09 DCPDRV Lawson  Initial code.
8c--D replaces "?": ?CPDRV
9      INTEGER NC, ND, J, K
10      DOUBLE PRECISION C(*),D(*),D1,D2,FAC,ZERO,HALF,TWO
11      DATA ZERO,HALF,TWO/ 0.D0, .5D0, 2.D0 /
12C
13C     INTEGRATION OF FINITE CHEBYSHEV SERIES
14C     C.L.LAWSON, JPL, 1973 JULY 19
15C
16C     (C(I),I=1,2)       SCALE FACTORS .
17C     C(I+2),I=1,NC+1    COEFS OF CHEBY SERIES .
18C     NC                 DEGREE OF CHEBY SERIES .
19C     (D(I),I=1,2)       OUTPUT..  SCALE FACTORS .
20C     (D(I+2),I=1,ND+1)  OUTPUT..  COEFS DEFINING DIFFERENTIATED
21C                                  SERIES .
22C     ND                 OUTPUT..  DEGREE OF SERIES
23C
24      IF (NC .LT. 0) THEN
25        CALL IERM1('DCPDRV',1,0,'REQUIRE NC .GE. 0','NC',NC,'.')
26      ELSE
27        D(1)=C(1)
28        D(2)=C(2)
29        IF (NC .EQ. 0) THEN
30          ND=0
31          D(3)=ZERO
32          RETURN
33        END IF
34        D2=ZERO
35        ND=NC-1
36        IF(ND .NE. 0) THEN
37          D1=ZERO
38          FAC=2*NC
39          DO 20 J=1,ND
40            D(ND+4-J)= FAC*C(ND+5-J) + D2
41            D2=D1
42            D1=D(ND+4-J)
43   20       FAC=FAC-TWO
44        END IF
45        D(3)=C(4) + D2*HALF
46        DO 40 K=1,NC
47   40     D(K+2)=D(K+2)/D(2)
48      END IF
49      RETURN
50      END
51