Télécharger pouloc.eso

Retour à la liste

Numérotation des lignes :

pouloc
  1. C POULOC SOURCE CB215821 26/10/26 21:15:56 12682
  2. SUBROUTINE POULOC(XEPOU,VECT,KERRE)
  3. C-----------------------------------------------------------------------
  4. C CALCUL DU VECTEUR LOCAL DE LA POUTRE PAR DEFAUT
  5. C
  6. C ENTREE
  7. C XEPOU COORDONNEES DES 2 NOEUDS
  8. C SORTIE
  9. C VECT VECTEUR DEFINISSANT LE REPERE LOCAL DE LA POUTRE
  10. C KERRE = 0 SI PAS DE PB
  11. C = 1 SI POINTS CONFONDUS
  12. C
  13. C-----------------------------------------------------------------------
  14. IMPLICIT INTEGER(I-N)
  15. IMPLICIT REAL*8(A-H,O-Z)
  16. DIMENSION XEPOU(3,*),P(3),VECT(*),A(3)
  17. C
  18. KERRE=0
  19. A(1)=XEPOU(1,2)-XEPOU(1,1)
  20. A(2)=XEPOU(2,2)-XEPOU(2,1)
  21. A(3)=XEPOU(3,2)-XEPOU(3,1)
  22. XL=SQRT(A(1)**2+A(2)**2+A(3)**2)
  23. IF(XL.EQ.0.D0) THEN
  24. KERRE=1
  25. RETURN
  26. ENDIF
  27. RL=1.D00/XL
  28. C
  29. C DEFINITION DU VECTEUR LOCAL PAR DEFAUT ( NON NORME )
  30. C
  31. VECT(1)=-A(2)*RL
  32. VECT(2)=A(1)*RL
  33. VECT(3)=0.D00
  34. DO 7 I=1,3
  35. P(I)=A(I)*RL
  36. 7 CONTINUE
  37. RLP=0.D0
  38. DO 1 I=1,3
  39. RLP=RLP+VECT(I)**2
  40. 1 CONTINUE
  41. RLP= SQRT(RLP)
  42. C
  43. C TEST DE COLINEARITE
  44. C
  45. PROD=0.D00
  46. DO 4 I=1,3
  47. PROD=PROD+VECT(I)*P(I)
  48. 4 CONTINUE
  49. IF(ABS(PROD).LT.0.99D00*RLP) GO TO 5
  50. VECT(1)= 0.D0
  51. VECT(2)= -A(3)*RL
  52. VECT(3)= A(2)*RL
  53. C
  54. C ORTHOGONALISATION
  55. C
  56. 5 CONTINUE
  57. RLP=0.D00
  58. DO 6 I=1,3
  59. VECT(I)=VECT(I)-PROD*P(I)
  60. RLP=RLP+VECT(I)**2
  61. 6 CONTINUE
  62. RLP=1.D00/SQRT(RLP)
  63. DO 2 I=1,3
  64. VECT(I)=VECT(I)*RLP
  65. 2 CONTINUE
  66. RETURN
  67. END
  68.  
  69.  
  70.  

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