home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / spclfnct / cs.for < prev    next >
Encoding:
Text File  |  1985-11-29  |  2.0 KB  |  62 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE CS
  5. C
  6. C        PURPOSE
  7. C           COMPUTES THE FRESNEL INTEGRALS.
  8. C
  9. C        USAGE
  10. C           CALL CS (C,S,X)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           C     - THE RESULTANT VALUE C(X).
  14. C           S     - THE RESULTANT VALUE S(X).
  15. C           X     - THE ARGUMENT OF FRESNEL INTEGRALS
  16. C                   IF X IS NEGATIVE, THE ABSOLUTE VALUE IS USED.
  17. C
  18. C        REMARKS
  19. C           THE ARGUMENT VALUE X REMAINS UNCHANGED.
  20. C
  21. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  22. C           NONE
  23. C
  24. C        METHOD
  25. C           DEFINITION
  26. C           C(X)=INTEGRAL(COS(T)/SQRT(2*LI*T) SUMMED OVER T FROM 0 TO X)
  27. C           S(X)=INTEGRAL(SIN(T)/SQRT(I*LI*T) SUMMED OVER T FROM 0 TO X)
  28. C           EVALUATION
  29. C           USING DIFFERENT APPROXIMATIONS FOR X LESS THAN 4 AND X
  30. C           GREATER THAN 4.
  31. C           REFERENCE
  32. C           'COMPUTATION OF FRESNEL INTEGRALS' BY BOERSMA,
  33. C           MATHEMATICAL TABLES AND OTHER AIDS TO COMPUTATION, VOL. 14,
  34. C           1960, NO. 72, P. 380.
  35. C
  36. C     ..................................................................
  37. C
  38.       SUBROUTINE CS(C,S,X)
  39.       Z=ABS(X)
  40.       IF(Z-4.)1,1,2
  41.     1 C=SQRT(Z)
  42.       S=Z*C
  43.       Z=(4.-Z)*(4.+Z)
  44.       C=C*((((((5.100785E-11*Z+5.244297E-9)*Z+5.451182E-7)*Z
  45.      1+3.273308E-5)*Z+1.020418E-3)*Z+1.102544E-2)*Z+1.840965E-1)
  46.       S=S*(((((6.677681E-10*Z+5.883158E-8)*Z+5.051141E-6)*Z
  47.      1+2.441816E-4)*Z+6.121320E-3)*Z+8.026490E-2)
  48.       RETURN
  49.     2 D=COS(Z)
  50.       S=SIN(Z)
  51.       Z=4./Z
  52.       A=(((((((8.768258E-4*Z-4.169289E-3)*Z+7.970943E-3)*Z-6.792801E-3)
  53.      1*Z-3.095341E-4)*Z+5.972151E-3)*Z-1.606428E-5)*Z-2.493322E-2)*Z
  54.      2-4.444091E-9
  55.       B=((((((-6.633926E-4*Z+3.401409E-3)*Z-7.271690E-3)*Z+7.428246E-3)
  56.      1*Z-4.027145E-4)*Z-9.314910E-3)*Z-1.207998E-6)*Z+1.994711E-1
  57.       Z=SQRT(Z)
  58.       C=0.5+Z*(D*A+S*B)
  59.       S=0.5+Z*(S*A-D*B)
  60.       RETURN
  61.       END
  62.