Web pdp-10.trailing-edge.com

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0026/ddet3.ssp
There are 2 other files named ddet3.ssp in the archive. Click here to see a list.
```C                                                                       DDT3  10
C     ..................................................................DDT3  20
C                                                                       DDT3  30
C        SUBROUTINE DDET3                                               DDT3  40
C                                                                       DDT3  50
C        PURPOSE                                                        DDT3  60
C           TO COMPUTE A VECTOR OF DERIVATIVE VALUES GIVEN A VECTOR OF  DDT3  70
C           FUNCTION VALUES WHOSE ENTRIES CORRESPOND TO EQUIDISTANTLY   DDT3  80
C           SPACED ARGUMENT VALUES.                                     DDT3  90
C                                                                       DDT3 100
C        USAGE                                                          DDT3 110
C           CALL DDET3(H,Y,Z,NDIM,IER)                                  DDT3 120
C                                                                       DDT3 130
C        DESCRIPTION OF PARAMETERS                                      DDT3 140
C           H     -  DOUBLE PRECISION CONSTANT DIFFERENCE BETWEEN       DDT3 150
C                    SUCCESSIVE ARGUMENT VALUES (H IS POSITIVE IF THE   DDT3 160
C                    ARGUMENT VALUES INCREASE AND NEGATIVE OTHERWISE)   DDT3 170
C           Y     -  GIVEN VECTOR OF DOUBLE PRECISION FUNCTION VALUES   DDT3 180
C                    (DIMENSION NDIM)                                   DDT3 190
C           Z     -  RESULTING VECTOR OF DOUBLE PRECISION DERIVATIVE    DDT3 200
C                    VALUES (DIMENSION NDIM)                            DDT3 210
C           NDIM  -  DIMENSION OF VECTORS Y AND Z                       DDT3 220
C           IER   -  RESULTING ERROR PARAMETER                          DDT3 230
C                    IER = -1  - NDIM IS LESS THAN 3                    DDT3 240
C                    IER =  0  - NO ERROR                               DDT3 250
C                    IER =  1  - H = 0                                  DDT3 260
C                                                                       DDT3 270
C        REMARKS                                                        DDT3 280
C           (1)   IF IER = -1,1, THEN THERE IS NO COMPUTATION.          DDT3 290
C           (2)   Z CAN HAVE THE SAME STORAGE ALLOCATION AS Y. IF Y IS  DDT3 300
C                 DISTINCT FROM Z, THEN IT IS NOT DESTROYED.            DDT3 310
C                                                                       DDT3 320
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED                  DDT3 330
C           NONE                                                        DDT3 340
C                                                                       DDT3 350
C        METHOD                                                         DDT3 360
C           IF X IS THE (SUPPRESSED) VECTOR OF ARGUMENT VALUES, THEN    DDT3 370
C           EXCEPT AT THE ENDPOINTS X(1) AND X(NDIM), Z(I) IS THE       DDT3 380
C           DERIVATIVE AT X(I) OF THE LAGRANGIAN INTERPOLATION          DDT3 390
C           POLYNOMIAL OF DEGREE 2 RELEVANT TO THE 3 SUCCESSIVE POINTS  DDT3 400
C           (X(I+K),Y(I+K)) K = -1,0,1.  (SEE HILDEBRAND, F.B.,         DDT3 410
C           INTRODUCTION TO NUMERICAL ANALYSIS, MC-GRAW-HILL, NEW YORK/ DDT3 420
C           TORONTO/LONDON, 1956, PP.82-84.)                            DDT3 430
C                                                                       DDT3 440
C     ..................................................................DDT3 450
C                                                                       DDT3 460
SUBROUTINE DDET3(H,Y,Z,NDIM,IER)                                  DDT3 470
C                                                                       DDT3 480
C                                                                       DDT3 490
DIMENSION Y(1),Z(1)                                               DDT3 500
DOUBLE PRECISION H,Y,Z,HH,YY,A,B                                  DDT3 510
C                                                                       DDT3 520
C        TEST OF DIMENSION                                              DDT3 530
IF(NDIM-3)4,1,1                                                   DDT3 540
C                                                                       DDT3 550
C        TEST OF STEPSIZE                                               DDT3 560
1 IF(H)2,5,2                                                        DDT3 570
C                                                                       DDT3 580
C        PREPARE DIFFERENTIATION LOOP                                   DDT3 590
2 HH=.5D0/H                                                         DDT3 600
YY=Y(NDIM-2)                                                      DDT3 610
B=Y(2)+Y(2)                                                       DDT3 620
B=HH*(B+B-Y(3)-Y(1)-Y(1)-Y(1))                                    DDT3 630
C                                                                       DDT3 640
C        START DIFFERENTIATION LOOP                                     DDT3 650
DO 3 I=3,NDIM                                                     DDT3 660
A=B                                                               DDT3 670
B=HH*(Y(I)-Y(I-2))                                                DDT3 680
3 Z(I-2)=A                                                          DDT3 690
C        END OF DIFFERENTIATION LOOP                                    DDT3 700
C                                                                       DDT3 710
C        NORMAL EXIT                                                    DDT3 720
IER=0                                                             DDT3 730
A=Y(NDIM-1)+Y(NDIM-1)                                             DDT3 740
Z(NDIM)=HH*(Y(NDIM)+Y(NDIM)+Y(NDIM)-A-A+YY)                       DDT3 750
Z(NDIM-1)=B                                                       DDT3 760
RETURN                                                            DDT3 770
C                                                                       DDT3 780
C        ERROR EXIT IN CASE NDIM IS LESS THAN 3                         DDT3 790
4 IER=-1                                                            DDT3 800
RETURN                                                            DDT3 810
C                                                                       DDT3 820
C        ERROR EXIT IN CASE OF ZERO STEPSIZE                            DDT3 830
5 IER=1                                                             DDT3 840
RETURN                                                            DDT3 850
END                                                               DDT3 860

```