Télécharger tufeps.eso

Retour à la liste

Numérotation des lignes :

tufeps
  1. C TUFEPS SOURCE CHAT 05/01/13 03:55:05 5004
  2. SUBROUTINE TUFEPS(XDDL,CAR,EPS,KERRE)
  3. C----------------------------------------------------------------------
  4. C DEFORMATIONS POUR L ELEMENT TUYAU FISSURE
  5. C
  6. C ENTREES
  7. C XDDL(12) = LES DDL AUX 2 NOEUDS
  8. C CAR(9) = LES CARACTERISTIQUES
  9. C CAR(1) = RAYON EXTERIEUR DU TUYAU
  10. C CAR(2) = EPAISSEUR DU TUYAU
  11. C CAR(3),CAR(4),CAR(5) AXE DU TUYAU
  12. C CAR(6),CAR(7),CAR(8) DIRECTION DE LA FISSU
  13. C CAR(9) = ANGLE DE LA FISSURE
  14. C TABLEAU DE TRAVAIL
  15. C SORTIES
  16. C EPS(8) = DEFORMATIONS
  17. C
  18. C KERRE = CODE D'ERREUR
  19. C 0 SI PAS DE PROBLEME, SINON :
  20. C 1 SI V2 EST NUL OU SI V1 ET V2 SONT COLINEAIRES
  21. C 2 SI V1 EST NUL
  22. C 3 SI TUYAU TROP EPAIS
  23. C----------------------------------------------------------------------
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8(A-H,O-Z)
  26. C Include contenant quelques constantes dont XPI :
  27. -INC CCREEL
  28. PARAMETER(UN=1.D0,XEPS=1.D-10)
  29. DIMENSION CAR(*),EPS(*),XDDL(*)
  30. DIMENSION XDDLOC(12),V1(3),V2(3),BV1(3),BV2(3),BPSS(3,3)
  31. KERRE=0
  32. C
  33. V1(1)=CAR(3)
  34. V1(2)=CAR(4)
  35. V1(3)=CAR(5)
  36. V2(1)=CAR(6)
  37. V2(2)=CAR(7)
  38. V2(3)=CAR(8)
  39. C
  40. C NORMALISATION DES VECTEURS V1 ET V2.
  41. C
  42. XNV1 = XZERO
  43. XNV2 = XZERO
  44. DO 5 I=1,3
  45. XNV1 = XNV1 + (V1(I)*V1(I))
  46. XNV2 = XNV2 + (V2(I)*V2(I))
  47. 5 CONTINUE
  48. IF (XNV1.LT.XEPS) THEN
  49. KERRE = 2
  50. GOTO 666
  51. ENDIF
  52. IF (XNV2.LT.XEPS) THEN
  53. KERRE = 1
  54. GOTO 666
  55. ENDIF
  56. XNV1 = UN/SQRT(XNV1)
  57. XNV2 = UN/SQRT(XNV2)
  58. DO 10 I=1,3
  59. BV1(I) = V1(I)*XNV1
  60. BV2(I) = V2(I)*XNV2
  61. 10 CONTINUE
  62. C
  63. C ORTHOGONALISATION ET RENORMALISATION DE V2.
  64. C
  65. PS = (BV1(1)*BV2(1))+(BV1(2)*BV2(2))+(BV1(3)*BV2(3))
  66. C
  67. C TEST SUR LA COLINEARITE DE V1 ET V2.
  68. C
  69. IF(ABS(PS).GE.(.99D0)) THEN
  70. KERRE = 1
  71. GOTO 666
  72. ELSE
  73. XNV2 = UN/SQRT(UN-(PS**2))
  74. DO 15 I=1,3
  75. BV2(I) = XNV2*(BV2(I)-(PS*BV1(I)))
  76. 15 CONTINUE
  77. ENDIF
  78. C
  79. C CALCUL DE LA MATRICE DE PASSAGE
  80. C LOCAL = BPSS * GLOBAL
  81. C V1 REPRESENTE L'AXE LOCAL DES Z
  82. C V2 REPRESENTE L'AXE LOCAL DES Y
  83. C
  84. DO 20 I=1,3
  85. BPSS(1,I) =BV1(I)
  86. BPSS(2,I) =BV2(I)
  87. 20 CONTINUE
  88. BPSS(3,1) = (BPSS(1,2)*BPSS(2,3))-(BPSS(1,3)*BPSS(2,2))
  89. BPSS(3,2) = (BPSS(1,3)*BPSS(2,1))-(BPSS(1,1)*BPSS(2,3))
  90. BPSS(3,3) = (BPSS(1,1)*BPSS(2,2))-(BPSS(1,2)*BPSS(2,1))
  91. C
  92. C TRANSFORMATION DES DDL GLOBAUX EN DDL LOCAUX X AXE TUYAU
  93. C Y POSITION FISSURE
  94. C Z COMPLEMENT
  95. CALL MATVEC(XDDL,XDDLOC,BPSS,4)
  96. C
  97. EPS(1)=XDDLOC(7)-XDDLOC(1)
  98. EPS(2)=XDDLOC(8 )-XDDLOC(2)
  99. EPS(3)=XDDLOC(9 )-XDDLOC(3)
  100. EPS(4)=XDDLOC(10)-XDDLOC(4)
  101. EPS(5)=XDDLOC(11)-XDDLOC(5)
  102. EPS(6)=XDDLOC(12)-XDDLOC(6)
  103. EPS(7)=0.D0
  104. EPS(8)=0.D0
  105. C
  106. 666 CONTINUE
  107. RETURN
  108. END
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  

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