Download kavown.eso

Back to the list

   1 : C KAVOWN    SOURCE    CHAT      05/01/13    00:51:48     5004           
   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(DABS(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=DACOS(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=DACOS(A)
  68 :          ENDIF
  69 :       ENDIF
  70 : 
  71 : C>> TRAITEMENT DU POINT J SUR LA FACE 2
  72 : 
  73 :       IF(DABS(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=DMAX1(T1,DACOS(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=DMIN1(T2,DACOS(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 :  

© Cast3M 2003 - All rights reserved.
Disclaimer