Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0026/sg13.ssp
There are 2 other files named sg13.ssp in the archive. Click here to see a list.
C                                                                       SG13  10
C     ..................................................................SG13  20
C                                                                       SG13  30
C        SUBROUTINE SG13                                                SG13  40
C                                                                       SG13  50
C        PURPOSE                                                        SG13  60
C           TO COMPUTE A VECTOR OF SMOOTHED FUNCTION VALUES GIVEN       SG13  70
C           VECTORS OF ARGUMENT VALUES AND CORRESPONDING FUNCTION       SG13  80
C           VALUES.                                                     SG13  90
C                                                                       SG13 100
C        USAGE                                                          SG13 110
C           CALL SG13(X,Y,Z,NDIM,IER)                                   SG13 120
C                                                                       SG13 130
C        DESCRIPTION OF PARAMETERS                                      SG13 140
C           X     -  GIVEN VECTOR OF ARGUMENT VALUES (DIMENSION NDIM)   SG13 150
C           Y     -  GIVEN VECTOR OF FUNCTION VALUES CORRESPONDING TO X SG13 160
C                    (DIMENSION NDIM)                                   SG13 170
C           Z     -  RESULTING VECTOR OF SMOOTHED FUNCTION VALUES       SG13 180
C                    (DIMENSION NDIM)                                   SG13 190
C           NDIM  -  DIMENSION OF VECTORS X,Y,AND Z                     SG13 200
C           IER   -  RESULTING ERROR PARAMETER                          SG13 210
C                    IER = -1  - NDIM IS LESS THAN 3                    SG13 220
C                    IER =  0  - NO ERROR                               SG13 230
C                                                                       SG13 240
C        REMARKS                                                        SG13 250
C           (1)  IF IER=-1 THERE HAS BEEN NO COMPUTATION.               SG13 260
C           (2)   Z CAN HAVE THE SAME STORAGE ALLOCATION AS X OR Y.  IF SG13 270
C                 X OR Y IS DISTINCT FROM Z, THEN IT IS NOT DESTROYED.  SG13 280
C                                                                       SG13 290
C        SUBROUTINES AND SUBPROGRAMS REQUIRED                           SG13 300
C           NONE                                                        SG13 310
C                                                                       SG13 320
C        METHOD                                                         SG13 330
C           EXCEPT AT THE ENDPOINTS X(1) AND X(NDIM), EACH SMOOTHED     SG13 340
C           VALUE Z(I) IS OBTAINED BY EVALUATING AT X(I) THE LEAST-     SG13 350
C           SQUARES POLYNOMIAL OF DEGREE 1 RELEVANT TO THE 3 SUCCESSIVE SG13 360
C           POINTS (X(I+K),Y(I+K)) K = -1,0,1.(SEE HILDEBRAND, F.B.,    SG13 370
C           INTRODUCTION  TO NUMERICAL ANALYSIS, MC GRAW-HILL, NEW YORK/SG13 380
C           TORONTO/LONDON, 1956, PP.258-311.)                          SG13 390
C                                                                       SG13 400
C     ..................................................................SG13 410
C                                                                       SG13 420
      SUBROUTINE SG13(X,Y,Z,NDIM,IER)                                   SG13 430
C                                                                       SG13 440
C                                                                       SG13 450
      DIMENSION X(1),Y(1),Z(1)                                          SG13 460
C                                                                       SG13 470
C        TEST OF DIMENSION                                              SG13 480
      IF(NDIM-3)7,1,1                                                   SG13 490
C                                                                       SG13 500
C        START LOOP                                                     SG13 510
    1 DO 6 I=3,NDIM                                                     SG13 520
      XM=.3333333*(X(I-2)+X(I-1)+X(I))                                  SG13 530
      YM=.3333333*(Y(I-2)+Y(I-1)+Y(I))                                  SG13 540
      T1=X(I-2)-XM                                                      SG13 550
      T2=X(I-1)-XM                                                      SG13 560
      T3=X(I)-XM                                                        SG13 570
      XM=T1*T1+T2*T2+T3*T3                                              SG13 580
      IF(XM)3,3,2                                                       SG13 590
    2 XM=(T1*(Y(I-2)-YM)+T2*(Y(I-1)-YM)+T3*(Y(I)-YM))/XM                SG13 600
C                                                                       SG13 610
C        CHECK FIRST POINT                                              SG13 620
    3 IF(I-3)4,4,5                                                      SG13 630
    4 H=XM*T1+YM                                                        SG13 640
    5 Z(I-2)=H                                                          SG13 650
    6 H=XM*T2+YM                                                        SG13 660
C        END OF LOOP                                                    SG13 670
C                                                                       SG13 680
C        UPDATE LAST TWO COMPONENTS                                     SG13 690
      Z(NDIM-1)=H                                                       SG13 700
      Z(NDIM)=XM*T3+YM                                                  SG13 710
      IER=0                                                             SG13 720
      RETURN                                                            SG13 730
C                                                                       SG13 740
C        ERROR EXIT IN CASE NDIM IS LESS THAN 3                         SG13 750
    7 IER=-1                                                            SG13 760
      RETURN                                                            SG13 770
      END                                                               SG13 780