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