Télécharger kavown.eso

Retour à la liste

Numérotation des lignes :

kavown
  1. C KAVOWN SOURCE CB215821 17/11/30 21:16:39 9639
  2. SUBROUTINE KAVOWN(RI,ZI,RJ,ZJ,DRI,DZI,DRJ,DZJ,KVU,NM,NAL,AL,KIMP)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C Include contenant quelques constantes dont XPI :
  6. -INC CCREEL
  7. C*********************************************************************
  8. C SP appele par KAXK
  9. C
  10. C - DETERMINATION DE LES LIMITES D INTEGRATION ANGULAIRE POUR LES
  11. C POINTS I (SUR LE SEGMENT 1) ET J(SUR LE SGMENT 2) N NE TENANT
  12. C PAS COMPTE DES OBSTRUCTEURS
  13. C - EN CAS DE VISIBILITE INITIALISATION DU TABLEAU AL
  14. C entree:
  15. C RI,ZI :COORDONNEES DU POINT I SUR LE SEGMENT 1
  16. C RJ,ZJ :COORDONNEES DU POINT J SUR LE SEGMENT 2
  17. C DRI,DZI :COORDONNEES DU VECTEUR SEGMENT 1
  18. C DRI,DZI :COORDONNEES DU VECTEUR SEGMENT 2
  19. C resultat:
  20. C KVU : 1 SI VISIBLE ,0 SINON
  21. C AL :INTERVALLES D INTEGRATION
  22. C NAL :NOMBRE D INTERVALLES
  23. C*********************************************************************
  24. DIMENSION AL(2,NM)
  25.  
  26. EMIN= 1.D-10
  27. EMIN1=-EMIN
  28. DMIN= 1.D-4
  29.  
  30. KVU=1
  31. H=ZJ-ZI
  32. AI=-H*DRI
  33. AJ= H*DRJ
  34.  
  35. T1=0.D0
  36. T2=XPI
  37.  
  38. C>> TRAITEMENT DU POINT I SUR LA FACE 1
  39.  
  40. IF(ABS(DZI).LE.EMIN) THEN
  41. IF(AI.GE.EMIN1) THEN
  42. KVU=0
  43. RETURN
  44. ENDIF
  45. ELSEIF(DZI.GE.EMIN) THEN
  46. A = (RI+H*DRI/DZI)/RJ
  47. IF(KIMP.GE.4) WRITE(6,*) ' PT I DZI A ',DZI,A
  48. IF(A.LT.(-1.D0+EMIN)) THEN
  49. KVU=0
  50. RETURN
  51. ELSEIF(A.GE.(1.D0-EMIN)) THEN
  52. KVU=1
  53. ELSE
  54. KVU=1
  55. T1=ACOS(A)
  56. ENDIF
  57. ELSE
  58. A = (RI+H*DRI/DZI)/RJ
  59. IF(KIMP.GE.4) WRITE(6,*) ' PT I DZI A ',DZI,A
  60. IF(A.LT.(-1.D0+EMIN)) THEN
  61. KVU=1
  62. ELSEIF(A.GE.(1.D0-EMIN)) THEN
  63. KVU=0
  64. RETURN
  65. ELSE
  66. KVU=1
  67. T2=ACOS(A)
  68. ENDIF
  69. ENDIF
  70.  
  71. C>> TRAITEMENT DU POINT J SUR LA FACE 2
  72.  
  73. IF(ABS(DZJ).LE.EMIN) THEN
  74. IF(AJ.GE.EMIN1) THEN
  75. KVU=0
  76. RETURN
  77. ENDIF
  78. ELSEIF(DZJ.GE.EMIN) THEN
  79. A = (RJ-H*DRJ/DZJ)/RI
  80. IF(KIMP.GE.4) WRITE(6,*) ' PT J DZJ A ',DZJ,A
  81. IF(A.LT.(-1.D0+EMIN)) THEN
  82. KVU=0
  83. RETURN
  84. ELSEIF(A.GE.(1.D0-EMIN)) THEN
  85. KVU=1
  86. ELSE
  87. KVU=1
  88. T1= MAX(T1,ACOS(A))
  89. ENDIF
  90. ELSE
  91. A = (RJ-H*DRJ/DZJ)/RI
  92. IF(KIMP.GE.4) WRITE(6,*) ' PT J DZJ A ',DZJ,A
  93. IF(A.LT.(-1.D0+EMIN)) THEN
  94. KVU=1
  95. ELSEIF(A.GE.(1.D0-EMIN)) THEN
  96. KVU=0
  97. RETURN
  98. ELSE
  99. KVU=1
  100. T2=MIN(T2,ACOS(A))
  101. ENDIF
  102. ENDIF
  103.  
  104. IF(KIMP.GE.4)WRITE(6,*) ' KAVOWN KVU T1 T2 ',KVU,T1,T2
  105. C IF(KVU.NE.1) WRITE(6,*) ' ERREUR '
  106.  
  107. C>> INITIALISATION INTERVALLES INTEGRATION
  108. IF(T2-T1.GE.DMIN) THEN
  109. NAL=1
  110. AL(1,1)=T1
  111. AL(2,1)=T2
  112. AL(1,2)=XPI
  113. ELSE
  114. KVU=0
  115. ENDIF
  116.  
  117. RETURN
  118. END
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  

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