Download kam1m2.eso

Back to the list

   1 : C KAM1M2    SOURCE    NC        10/12/02    21:15:00     6803           
   2 :       SUBROUTINE KAM1M2(R1,Z1,R2,Z2,RA,ZA,RB,ZB,R,Z,KM,KA)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : C----------------------------------------------------------------------
   6 : C SP appele par KAINTE
   7 : C    calcul du point d intersection du segment obstructeur AB
   8 : C     (RA,ZA) (RB,ZB)
   9 : C    et du segment M1M2 (R1,Z1) (R2,Z2)
  10 : C    resultat:
  11 : C      R Z coordonnees du point
  12 : C      KM=1 si le point appartient au segment M1M2
  13 : C      si oui KA=1 si le point appartient au segment AB
  14 : C----------------------------------------------------------------------
  15 : C     EMIN=1.D-5
  16 : C     EMIN1=-1.D-5
  17 : C
  18 : C     11/2010: on augmente la précision du calcul insuffisante si dr/r tres faible
  19 : C
  20 :       EMIN=1.D-10
  21 :       EMIN1=-1.D-10
  22 :       KM=0
  23 :       KA=0
  24 : 
  25 :       U1=Z1-Z2
  26 :       U2=R2-R1
  27 :       V1=ZA-ZB
  28 :       V2=RB-RA
  29 : 
  30 :       PS=U1*V2-U2*V1
  31 :       IF(DABS(PS).GE.EMIN) THEN
  32 :        R=(U1*V2*R1-U2*V1*RA+ U2*V2*(Z1-ZA) )/PS
  33 :        Z=(U1*V2*ZA-U2*V1*Z1- U1*V1*(R1-RA) )/PS
  34 :        PS=(R-R1)*(R-R2)+(Z-Z1)*(Z-Z2)
  35 :        IF(PS.LT.EMIN1) THEN
  36 :         KM=1
  37 : 
  38 :         PA=(R-RA)*(R-RB)+(Z-ZA)*(Z-ZB)
  39 :         IF(PA.LT.EMIN1) KA=1
  40 : 
  41 :        ENDIF
  42 :        ENDIF
  43 : 
  44 :       RETURN
  45 :       END
  46 :  
  47 :  

© Cast3M 2003 - All rights reserved.
Disclaimer