1 : C FRESNE SOURCE CHAT 05/01/13 00:08:15 5004 2 : SUBROUTINE FRESNE(CX,SX,X,N) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : C 6 : C ===================================================================== 7 : C SOUS-PROGRAMME FORTRAN POUR CALCULER LES INTEGRALES DE FRESNEL : 8 : C 9 : C / X 10 : C CX=1/SQRT(2PI)/ COS(T)/SQRT(T) DT 11 : C / 0 12 : C 13 : C / X 14 : C SX=1/SQRT(2PI)/ SIN(T)/SQRT(T) DT 15 : C / 0 16 : C 17 : C PROGRAMMEUR : VACELET 18 : C CREATION : 08/02/89 19 : C ===================================================================== 20 : C 21 : -INC CCREEL 22 : DIMENSION A(12) , B(12) , C(12) , D(12) 23 : DIMENSION X(N) , CX(N) , SX(N) 24 : XREF = 4.D0 25 : C 26 : C REMPLISSAGE DES TABLEAUX A , B , C , D 27 : C 28 : A(1) = + 1.595769140D0 29 : A(2) = - 0.000001702D0 30 : A(3) = - 6.808568854D0 31 : A(4) = - 0.000576361D0 32 : A(5) = + 6.920691902D0 33 : A(6) = - 0.016898657D0 34 : A(7) = - 3.050485660D0 35 : A(8) = - 0.075752419D0 36 : A(9) = + 0.850663781D0 37 : A(10) = - 0.025639041D0 38 : A(11) = - 0.150230960D0 39 : A(12) = + 0.034404779D0 40 : C 41 : B(1) = - 0.000000033D0 42 : B(2) = + 4.255387524D0 43 : B(3) = - 0.000092810D0 44 : B(4) = - 7.780020400D0 45 : B(5) = - 0.009520895D0 46 : B(6) = + 5.075161298D0 47 : B(7) = - 0.138341947D0 48 : B(8) = - 1.363729124D0 49 : B(9) = - 0.403349276D0 50 : B(10) = + 0.702222016D0 51 : B(11) = - 0.216195929D0 52 : B(12) = + 0.019547031D0 53 : C 54 : C(1) = + 0.000000000D0 55 : C(2) = - 0.024933975D0 56 : C(3) = + 0.000003936D0 57 : C(4) = + 0.005770956D0 58 : C(5) = + 0.000689892D0 59 : C(6) = - 0.009497136D0 60 : C(7) = + 0.011948809D0 61 : C(8) = - 0.006748873D0 62 : C(9) = + 0.000246420D0 63 : C(10) = + 0.002102967D0 64 : C(11) = - 0.001217930D0 65 : C(12) = + 0.000233939D0 66 : C 67 : D(1) = + 0.199471140D0 68 : D(2) = + 0.000000023D0 69 : D(3) = - 0.009351341D0 70 : D(4) = + 0.000023006D0 71 : D(5) = + 0.004851466D0 72 : D(6) = + 0.001903218D0 73 : D(7) = - 0.017122914D0 74 : D(8) = + 0.029064067D0 75 : D(9) = - 0.027928953D0 76 : D(10) = + 0.016497308D0 77 : D(11) = - 0.005598313D0 78 : D(12) = + 0.000838386D0 79 : C 80 : C APPROXIMATIONS DES INTEGRALES SELON LES VALEURS DE X 81 : C 82 : DO 100 K=1,N 83 : CK = COS(X(K)) 84 : SK = SIN(X(K)) 85 : IF(X(K).LE.XREF) THEN 86 : X1 = X(K) / XREF 87 : A1 = 0.D0 88 : B1 = 0.D0 89 : DO 10 I=1,12 90 : J = I-1 91 : A1 = A1 + A(I)*(X1**J) 92 : B1 = B1 + B(I)*(X1**J) 93 : 10 CONTINUE 94 : SOM1 = A1*CK + B1*SK 95 : SOM2 = A1*SK - B1*CK 96 : C 97 : C CALCUL DE CX ET SX 98 : C 99 : CX(K) = SQRT(X1) * SOM1 100 : SX(K) = SQRT(X1) * SOM2 101 : C 102 : ELSE 103 : X2 = XREF / X(K) 104 : A2 = 0.D0 105 : B2 = 0.D0 106 : DO 20 I=1,12 107 : J = I-1 108 : A2 = A2 + C(I)*(X2**J) 109 : B2 = B2 + D(I)*(X2**J) 110 : 20 CONTINUE 111 : SOM3 = A2*CK + B2*SK 112 : SOM4 = A2*SK - B2*CK 113 : C 114 : C CALCUL DE CX ET SX 115 : C 116 : CX(K) = 0.5D0 + SQRT(X2) * SOM3 117 : SX(K) = 0.5D0 + SQRT(X2) * SOM4 118 : C 119 : ENDIF 120 : 100 CONTINUE 121 : C 122 : RETURN 123 : END 124 : 125 : 126 :
© Cast3M 2003 - All rights reserved.
Disclaimer