ellp07
C ELLP07 SOURCE CHAT 05/01/12 23:34:58 5004 C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C OPERATEUR ELFE LAPLACE POUTRE C C REGARDE SI LE SEGMENT <1-2> APPARTIENT AU SEGMENT <AB> C C PARAMETRES : C C A ( XA,YA,ZA ) B ( XB,YB,ZB ) 1 ( X1,Y1,Z1 ) 2 ( X2,Y2,Z2 ) C C C SORTIES : C C IOUI : = 1 SI LA CONDITION EST VERIFIEE C = 0 SI LA CONDITION N'EST PAS VERIFIEE C C C C AUTEUR : SAINT-DIZIER C DATE : 20 JUILLET 1990 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C IOUI = 0 C C -- VECTEUR AB ET LONGUEUR DE LE POUTRE C XBA = XB - XA YBA = YB - YA ZBA = ZB - ZA XL = SQRT ( XBA*XBA + YBA*YBA + ZBA*ZBA) EPS0 = 1.E-15 IF (XL.LT.EPS0) RETURN C C-- VECTEURS AM1, AM2, BM1, BM2 C X1A = X1 - XA Y1A = Y1 - YA Z1A = Z1 - ZA XL1A = SQRT ( X1A*X1A + Y1A*Y1A + Z1A*Z1A ) C X2A = X2 - XA Y2A = Y2 - YA Z2A = Z2 - ZA XL2A = SQRT ( X2A*X2A + Y2A*Y2A + Z2A*Z2A ) C X1B = X1 - XB Y1B = Y1 - YB Z1B = Z1 - ZB XL1B = SQRT ( X1B*X1B + Y1B*Y1B + Z1B*Z1B ) C X2B = X2 - XB Y2B = Y2 - YB Z2B = Z2 - ZB XL2B = SQRT ( X2B*X2B + Y2B*Y2B + Z2B*Z2B ) C C -- PRODUITS VECTORIELS AM1^AB ET AM2^AB ET NORMES ASSOCIEES C XVECT1 = ZBA*Y1A - YBA*Z1A YVECT1 = XBA*Z1A - ZBA*X1A ZVECT1 = YBA*X1A - XBA*Y1A XNORM1 = SQRT ( XVECT1*XVECT1 + YVECT1*YVECT1 + ZVECT1*ZVECT1 ) C XVECT2 = ZBA*Y2A - YBA*Z2A YVECT2 = XBA*Z2A - ZBA*X2A ZVECT2 = YBA*X2A - XBA*Y2A XNORM2 = SQRT ( XVECT2*XVECT2 + YVECT2*YVECT2 + ZVECT2*ZVECT2 ) C C -- PRODUITS SCALAIRES AM1.BM1 ET AM2.BM2 C XP1 = X1A*X1B + Y1A*Y1B + Z1A*Z1B XP2 = X2A*X2B + Y2A*Y2B + Z2A*Z2B C IF (((XL1A.LT.EPS0).AND.(XP2.GT.0.)).OR. * ((XL1B.LT.EPS0).AND.(XP2.GT.0.))) RETURN C IF (((XL2A.LT.EPS0).AND.(XP1.GT.0.)).OR. * ((XL2B.LT.EPS0).AND.(XP1.GT.0.))) RETURN C IF (((XL1A.LT.EPS0).AND.(XP2.LT.0.)).OR. * ((XL1B.LT.EPS0).AND.(XP2.LT.0.))) THEN IOUI = 1 RETURN ENDIF C IF (((XL2A.LT.EPS0).AND.(XP1.LT.0.)).OR. * ((XL2B.LT.EPS0).AND.(XP1.LT.0.))) THEN IOUI = 1 RETURN ENDIF C C -- NORMALISATION (REND LES CRITERES INDEPENDANTS DES DIMENSIONS C DE LA POUTRE) C XNORM1 = XNORM1 / (XL*XL1A) XNORM2 = XNORM2 / (XL*XL2A) XP1 = XP1 / (XL*XL) XP2 = XP2 / (XL*XL) C C -- CRITERES GEOMETRIQUES C EPS1 = 8.7E-3 EPS2 = 1.E-3 C C -- IOUI VAUT 1 SI LES VECTEURS SONT COLINEAIRES (M1 ET M2 APPARTIENNEN C -- A LA DROITE (AB)), ET SI LES PRODUITS SCALAIRES SONT <0 (APPARTE- C -- NANCE AU SEGMENT AB) C IF (XNORM1.LT.EPS1)THEN IF (XNORM2.LT.EPS1) THEN IF (XP1.LT.EPS2) THEN IF (XP2.LT.EPS2) IOUI=1 ENDIF ENDIF ENDIF C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales