Télécharger tufibs.eso

Retour à la liste

Numérotation des lignes :

  1. C TUFIBS SOURCE CHAT 05/01/13 03:55:14 5004
  2. SUBROUTINE TUFIBS(FORCE,CONT,CAR,WORK,KERRE)
  3. C----------------------------------------------------------------------
  4. C B*SIGMA POUR L ELEMENT TUYAU FISSURE
  5. C
  6. C ENTREES
  7. C CONT(8) = LES CONTRAINTES
  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 WORK(21) = TABLEAU DE TRAVAIL
  16. C SORTIES
  17. C FORCE(12) = LES FORCES AUX DEUX NOEUDS
  18. C
  19. C KERRE = CODE D'ERREUR
  20. C 0 SI PAS DE PROBLEME, SINON :
  21. C 1 SI V2 EST NUL OU SI V1 ET V2 SONT COLINEAIRES
  22. C 2 SI V1 EST NUL
  23. C 3 SI TUYAU TROP EPAIS
  24. C----------------------------------------------------------------------
  25. IMPLICIT INTEGER(I-N)
  26. IMPLICIT REAL*8(A-H,O-Z)
  27. C Include contenant quelques constantes dont XPI :
  28. -INC CCREEL
  29. PARAMETER(UN=1.D0,XEPS=1.D-10)
  30. DIMENSION FORCE(*),CONT(*),CAR(*),WORK(*)
  31. DIMENSION V1(3),V2(3),BV1(3),BV2(3),BPSS(3,3)
  32. KERRE=0
  33. C
  34. C ON REMPLIT LES FORCES NODALES DANS LE REPERE LOCAL
  35. C
  36. DO 1 I=1,6
  37. WORK(I)=-CONT(I)
  38. WORK(I+6)=CONT(I)
  39. 1 CONTINUE
  40. C
  41. C ON PASSE (AVEC DIFFICULTE) DANS LE REPERE GLOBAL
  42. C
  43. V1(1)=CAR(3)
  44. V1(2)=CAR(4)
  45. V1(3)=CAR(5)
  46. V2(1)=CAR(6)
  47. V2(2)=CAR(7)
  48. V2(3)=CAR(8)
  49. C
  50. C NORMALISATION DES VECTEURS V1 ET V2.
  51. C
  52. XNV1 = XZERO
  53. XNV2 = XZERO
  54. DO 5 I=1,3
  55. XNV1 = XNV1 + (V1(I)*V1(I))
  56. XNV2 = XNV2 + (V2(I)*V2(I))
  57. 5 CONTINUE
  58. IF (XNV1.LT.XEPS) THEN
  59. KERRE = 2
  60. GOTO 666
  61. ENDIF
  62. IF (XNV2.LT.XEPS) THEN
  63. KERRE = 1
  64. GOTO 666
  65. ENDIF
  66. XNV1 = UN/SQRT(XNV1)
  67. XNV2 = UN/SQRT(XNV2)
  68. DO 10 I=1,3
  69. BV1(I) = V1(I)*XNV1
  70. BV2(I) = V2(I)*XNV2
  71. 10 CONTINUE
  72. C
  73. C ORTHOGONALISATION ET RENORMALISATION DE V2.
  74. C
  75. PS = (BV1(1)*BV2(1))+(BV1(2)*BV2(2))+(BV1(3)*BV2(3))
  76. C
  77. C TEST SUR LA COLINEARITE DE V1 ET V2.
  78. C
  79. IF(ABS(PS).GE.(.99D0)) THEN
  80. KERRE = 1
  81. GOTO 666
  82. ELSE
  83. XNV2 = UN/SQRT(UN-(PS**2))
  84. DO 15 I=1,3
  85. BV2(I) = XNV2*(BV2(I)-(PS*BV1(I)))
  86. 15 CONTINUE
  87. ENDIF
  88. C
  89. C CALCUL DE LA MATRICE DE PASSAGE
  90. C GLOBAL = BPSS * LOCAL
  91. C V1 REPRESENTE L'AXE LOCAL DES Z
  92. C V2 REPRESENTE L'AXE LOCAL DES Y
  93. C
  94. DO 20 I=1,3
  95. BPSS(I,1) =BV1(I)
  96. BPSS(I,2) =BV2(I)
  97. 20 CONTINUE
  98. BPSS(1,3) = (BPSS(2,1)*BPSS(3,2))-(BPSS(3,1)*BPSS(2,2))
  99. BPSS(2,3) = (BPSS(3,1)*BPSS(1,2))-(BPSS(1,1)*BPSS(3,2))
  100. BPSS(3,3) = (BPSS(1,1)*BPSS(2,2))-(BPSS(2,1)*BPSS(1,2))
  101. C
  102. C TRANSFORMATION DES FORCES LOCALES EN GLOBALES
  103. C
  104. CALL MATVEC(WORK,FORCE,BPSS,4)
  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