Download fresne.eso

Back to the list

   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