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