Télécharger fresne.eso

Retour à la liste

Numérotation des lignes :

fresne
  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.  
  127.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales