C FRESNE    SOURCE    CHAT      05/01/13    00:08:15     5004
      SUBROUTINE FRESNE(CX,SX,X,N)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
C
C =====================================================================
C   SOUS-PROGRAMME FORTRAN POUR CALCULER LES INTEGRALES DE FRESNEL :
C
C                  / X
C   CX=1/SQRT(2PI)/   COS(T)/SQRT(T) DT
C                / 0
C
C                  / X
C   SX=1/SQRT(2PI)/   SIN(T)/SQRT(T) DT
C                / 0
C
C   PROGRAMMEUR : VACELET
C   CREATION    : 08/02/89
C =====================================================================
C
-INC CCREEL
      DIMENSION A(12) , B(12) , C(12) , D(12)
      DIMENSION X(N) , CX(N) , SX(N)
      XREF = 4.D0
C
C     REMPLISSAGE DES TABLEAUX A , B , C , D
C
      A(1)  = + 1.595769140D0
      A(2)  = - 0.000001702D0
      A(3)  = - 6.808568854D0
      A(4)  = - 0.000576361D0
      A(5)  = + 6.920691902D0
      A(6)  = - 0.016898657D0
      A(7)  = - 3.050485660D0
      A(8)  = - 0.075752419D0
      A(9)  = + 0.850663781D0
      A(10) = - 0.025639041D0
      A(11) = - 0.150230960D0
      A(12) = + 0.034404779D0
C
      B(1)  = - 0.000000033D0
      B(2)  = + 4.255387524D0
      B(3)  = - 0.000092810D0
      B(4)  = - 7.780020400D0
      B(5)  = - 0.009520895D0
      B(6)  = + 5.075161298D0
      B(7)  = - 0.138341947D0
      B(8)  = - 1.363729124D0
      B(9)  = - 0.403349276D0
      B(10) = + 0.702222016D0
      B(11) = - 0.216195929D0
      B(12) = + 0.019547031D0
C
      C(1)  = + 0.000000000D0
      C(2)  = - 0.024933975D0
      C(3)  = + 0.000003936D0
      C(4)  = + 0.005770956D0
      C(5)  = + 0.000689892D0
      C(6)  = - 0.009497136D0
      C(7)  = + 0.011948809D0
      C(8)  = - 0.006748873D0
      C(9)  = + 0.000246420D0
      C(10) = + 0.002102967D0
      C(11) = - 0.001217930D0
      C(12) = + 0.000233939D0
C
      D(1)  = + 0.199471140D0
      D(2)  = + 0.000000023D0
      D(3)  = - 0.009351341D0
      D(4)  = + 0.000023006D0
      D(5)  = + 0.004851466D0
      D(6)  = + 0.001903218D0
      D(7)  = - 0.017122914D0
      D(8)  = + 0.029064067D0
      D(9)  = - 0.027928953D0
      D(10) = + 0.016497308D0
      D(11) = - 0.005598313D0
      D(12) = + 0.000838386D0
C
C     APPROXIMATIONS DES INTEGRALES SELON  LES VALEURS DE X
C
      DO 100 K=1,N
        CK = COS(X(K))
        SK = SIN(X(K))
      IF(X(K).LE.XREF) THEN
        X1 = X(K) / XREF
        A1 = 0.D0
        B1 = 0.D0
        DO 10 I=1,12
          J = I-1
          A1 = A1 + A(I)*(X1**J)
          B1 = B1 + B(I)*(X1**J)
  10    CONTINUE
        SOM1 = A1*CK + B1*SK
        SOM2 = A1*SK - B1*CK
C
C      CALCUL DE CX ET SX
C
        CX(K) = SQRT(X1) * SOM1
        SX(K) = SQRT(X1) * SOM2
C
      ELSE
        X2 = XREF / X(K)
        A2 = 0.D0
        B2 = 0.D0
        DO 20 I=1,12
          J = I-1
          A2 = A2 + C(I)*(X2**J)
          B2 = B2 + D(I)*(X2**J)
  20    CONTINUE
        SOM3 = A2*CK + B2*SK
        SOM4 = A2*SK - B2*CK
C
C      CALCUL DE CX ET SX
C
        CX(K) = 0.5D0 + SQRT(X2) * SOM3
        SX(K) = 0.5D0 + SQRT(X2) * SOM4
C
      ENDIF
  100 CONTINUE
C
      RETURN
      END



