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