home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / DOOG / PCSSP1.ZIP / NUMDIFF.ZIP / DET5.FOR < prev    next >
Text File  |  1985-11-29  |  3KB  |  89 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE DET5
  5. C
  6. C        PURPOSE
  7. C           TO COMPUTE A VECTOR OF DERIVATIVE VALUES GIVEN A VECTOR OF
  8. C           FUNCTION VALUES WHOSE ENTRIES CORRESPOND TO EQUIDISTANTLY
  9. C           SPACED ARGUMENT VALUES.
  10. C
  11. C        USAGE
  12. C           CALL DET5(H,Y,Z,NDIM,IER)
  13. C
  14. C        DESCRIPTION OF PARAMETERS
  15. C           H     -  CONSTANT DIFFERENCE BETWEEN SUCCESSIVE ARGUMENT
  16. C                    VALUES (H IS POSITIVE IF THE ARGUMENT VALUES
  17. C                    INCREASE AND NEGATIVE OTHERWISE)
  18. C           Y     -  GIVEN VECTOR OF FUNCTION VALUES (DIMENSION NDIM)
  19. C           Z     -  RESULTING VECTOR OF DERIVATIVE VALUES (DIMENSION
  20. C                    NDIM)
  21. C           NDIM  -  DIMENSION OF VECTORS Y AND Z
  22. C           IER   -  RESULTING ERROR PARAMETER
  23. C                    IER = -1  - NDIM IS LESS THAN 5
  24. C                    IER =  0  - NO ERROR
  25. C                    IER =  1  - H = 0
  26. C
  27. C        REMARKS
  28. C           (1)   IF IER = -1,1, THEN THERE IS NO COMPUTATION.
  29. C           (2)   Z CAN HAVE THE SAME STORAGE ALLOCATION AS Y.  IF Y IS
  30. C                 DISTINCT FROM Z, THEN IT IS NOT DESTROYED.
  31. C
  32. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  33. C           NONE
  34. C
  35. C        METHOD
  36. C           IF X IS THE (SUPPRESSED) VECTOR OF ARGUMENT VALUES, THEN
  37. C           EXCEPT AT THE POINTS X(1),X(2),X(NDIM-1) AND X(NDIM), Z(I)
  38. C           IS THE DERIVATIVE AT X(I) OF THE LAGRANGIAN INTERPOLATION
  39. C           POLYNOMIAL OF DEGREE 4 RELEVANT TO THE 5 SUCCESSIVE POINTS
  40. C           (X(I+K),Y(I+K)) K = -2,-1,...,2.  (SEE HILDEBRAND, F.B.,
  41. C           INTRODUCTION TO NUMERICAL ANALYSIS, MC GRAW-HILL, NEW YORK/
  42. C           TORONTO/LONDON, 1956, PP. 82-84.)
  43. C
  44. C     ..................................................................
  45. C
  46.       SUBROUTINE DET5(H,Y,Z,NDIM,IER)
  47. C
  48. C
  49.       DIMENSION Y(1),Z(1)
  50. C
  51. C        TEST OF DIMENSION
  52.       IF(NDIM-5)4,1,1
  53. C
  54. C        TEST OF STEPSIZE
  55.     1 IF(H)2,5,2
  56. C
  57. C        PREPARE DIFFERENTIATION LOOP
  58.     2 HH=.08333333/H
  59.       YY=Y(NDIM-4)
  60.       B=HH*(-25.*Y(1)+48.*Y(2)-36.*Y(3)+16.*Y(4)-3.*Y(5))
  61.       C=HH*(-3.*Y(1)-10.*Y(2)+18.*Y(3)-6.*Y(4)+Y(5))
  62. C
  63. C        START DIFFERENTIATION LOOP
  64.       DO 3 I=5,NDIM
  65.       A=B
  66.       B=C
  67.       C=HH*(Y(I-4)-Y(I)+8.*(Y(I-1)-Y(I-3)))
  68.     3 Z(I-4)=A
  69. C        END OF DIFFERENTIATION LOOP
  70. C
  71. C        NORMAL EXIT
  72.       IER=0
  73.       A=HH*(-YY+6.*Y(NDIM-3)-18.*Y(NDIM-2)+10.*Y(NDIM-1)+3.*Y(NDIM))
  74.      0Z(NDIM)=HH*(3.*YY-16.*Y(NDIM-3)+36.*Y(NDIM-2)-48.*Y(NDIM-1)
  75.      1            +25.*Y(NDIM))
  76.       Z(NDIM-1)=A
  77.       Z(NDIM-2)=C
  78.       Z(NDIM-3)=B
  79.       RETURN
  80. C
  81. C        ERROR EXIT IN CASE NDIM IS LESS THAN 5
  82.     4 IER=-1
  83.       RETURN
  84. C
  85. C        ERROR EXIT IN CASE OF ZERO STEPSIZE
  86.     5 IER=1
  87.       RETURN
  88.       END
  89.