Download kateta.eso

Back to the list

   1 : C KATETA    SOURCE    CHAT      05/01/13    00:51:42     5004           
   2 :       SUBROUTINE KATETA(RI,ZI,RJ,ZJ,DRI,DZI,DRJ,DZJ,NM,NAL,AL,GG,KIMP
   3 :      &     ,EXTINC,RAD)
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)
   6 : C    Include contenant quelques constantes dont XPI :
   7 : -INC CCREEL
   8 : C*********************************************************************
   9 : C SP appele par KAXK
  10 : C    INTEGRATION ANGULAIRE POUR 2 POINTS PRIS SUR LES FACES 1 ET 2
  11 : C     entree:
  12 : C      RI,ZI   :COORDONNEES DU POINT I SUR LE SEGMENT 1
  13 : C      RJ,ZJ   :COORDONNEES DU POINT J SUR LE SEGMENT 2
  14 : C      DRI,DZI :COORDONNEES DU VECTEUR SEGMENT 1
  15 : C      DRI,DZI :COORDONNEES DU VECTEUR SEGMENT 2
  16 : C      AL      :INTERVALLES D INTEGRATION
  17 : C      NAL     :NOMBRE D INTERVALLES
  18 : C      EXTINC  :coefficient d'extinction de la cavite si absorbante
  19 : C               (multiplié par RAD, dimension du pb ds FACAXI)
  20 : C      RAD     : dimension du pb(le calcul st fait en coor. reduites)
  21 : C     resultat:
  22 : C      GG
  23 : C      si transparent: la primitive existe
  24 : C      si absorbant  : calcul de l'integrale par la methode des
  25 : C                      trapèzes
  26 : C     
  27 : C*********************************************************************
  28 :       DIMENSION AL(2,NM)
  29 : 
  30 :       DMIN=1.D-5
  31 :       DMIN=DMIN*DMIN
  32 : 
  33 :       H=ZJ-ZI
  34 : 
  35 :       C1= RI*RJ*DZI*DZJ
  36 :       C1= RI*RJ*C1
  37 :       C4=  RI*RI + RJ*RJ + H*H
  38 :       C5= -2.D0*RI*RJ
  39 : 
  40 : *     milieu transparent
  41 : 
  42 :       IF(EXTINC.LT.1D-3) THEN
  43 : 
  44 :          C6=C4/C5
  45 :          C52=C5*C5
  46 : 
  47 :          ST=0.D0
  48 :          DO 100 I =1,NAL
  49 :             ST=ST+AL(2,I)-AL(1,I)
  50 :  100     CONTINUE
  51 :          G = (C1/C52)* ST
  52 : 
  53 : CC6>  
  54 :          IF(DABS(C6+1.D0).GE.DMIN) THEN
  55 : 
  56 : C>>   LES POINTS SONT DIFFERENTS
  57 : 
  58 :             C2= - DZI*DZJ*(RI*RI+RJ*RJ) + H*( RJ*DRJ*DZI - RI*DRI*DZJ)
  59 :             C3= (RI*DZI + DRI*H)*(RJ*DZJ-DRJ*H)
  60 :             C2= C2*RI*RJ
  61 :             C3= C3*RI*RJ
  62 :             C7=C2-2*C1*C6
  63 :             C8=C3-C1*C6*C6
  64 :             C9=C6*C7-C8
  65 :             C10=(C7-C6*C8)*2.D0
  66 :             C11=DSQRT(C6*C6-1.D0)
  67 :             C12=(C6-1.D0)/C11
  68 : 
  69 :             G2=0.D0
  70 :             G3=0.D0
  71 : 
  72 :             DO 110 IL=1,NAL
  73 :                T1=AL(1,IL)
  74 :                T2=AL(2,IL)
  75 :                GG2 =  (DSIN(T2)/(C6+DCOS(T2)))-(DSIN(T1)/(C6+DCOS(T1)))
  76 :                GG2=C9*GG2/C52/C11/C11
  77 : 
  78 :                IF (DABS(T2-XPI).LE.DMIN) THEN
  79 :                   Y2 = -XPI/2.D0
  80 :                ELSE
  81 :                   Y2 = DATAN(C12*DTAN(T2/2.D0))
  82 :                ENDIF
  83 :                IF (DABS(T1-XPI).LE.DMIN) THEN
  84 :                   Y1 = -XPI/2.D0
  85 :                ELSE
  86 :                   Y1 = DATAN(C12*DTAN(T1/2.D0))
  87 :                ENDIF
  88 : 
  89 :                GG3= (Y1-Y2)*C10 /C52/C11/C11/C11
  90 : 
  91 :                G2 = G2 + GG2
  92 :                G3 = G3 + GG3
  93 : 
  94 :  110        CONTINUE
  95 :             IF(KIMP.GE.4) WRITE(6,*) ' G1 G2 G3 '
  96 :             G  = G  + G2 + G3
  97 : CC6-  
  98 :          ELSE
  99 : C       WRITE(6,*) ' POINTS PROCHES ',IA,IB
 100 : 
 101 :          ENDIF
 102 : CC6<  
 103 :          GG=G
 104 : 
 105 : *     milieu absorbant
 106 : 
 107 :       ELSE
 108 : 
 109 :          C2= - DZI*DZJ*(RI*RI+RJ*RJ) + H*( RJ*DRJ*DZI - RI*DRI*DZJ)
 110 :          C3= (RI*DZI + DRI*H)*(RJ*DZJ-DRJ*H)
 111 :          C2= C2*RI*RJ
 112 :          C3= C3*RI*RJ
 113 : 
 114 : *      arbitraire
 115 :          NT=50
 116 : 
 117 :          G  = 0.D0
 118 :          DO 200 IL=1,NAL
 119 :             G1=0.D0
 120 :             DO 201 K=1,NT
 121 :                DTETA = (AL(2,IL)-AL(1,IL))/NT
 122 :                TETA = DTETA/2.D0 + (K-1)*DTETA
 123 :                XNUM=C1*DCOS(TETA)*DCOS(TETA)+C2*DCOS(TETA)+C3
 124 :                XDEN=C4+C5*DCOS(TETA)
 125 :                DIST=DSQRT(XDEN)
 126 : C         epaisseur optique
 127 :                EPAIS = EXTINC*RAD*DIST
 128 :                G1= G1+(XNUM/XDEN/XDEN)*(DEXP(-EPAIS))*DTETA
 129 :  201        CONTINUE
 130 :             G = G + G1
 131 :  200     CONTINUE
 132 : 
 133 :          GG=G
 134 : 
 135 :       ENDIF
 136 : 
 137 :       IF(KIMP.GE.4)WRITE(6,*) ' KATETA  G ',GG
 138 :       RETURN
 139 :       END
 140 : 
 141 : 
 142 : 
 143 :  
 144 :  
 145 :  

© Cast3M 2003 - All rights reserved.
Disclaimer