Télécharger otobo.eso

Retour à la liste

Numérotation des lignes :

  1. C OTOBO SOURCE CHAT 05/01/13 02:06:53 5004
  2. SUBROUTINE OTOBO(VAR0,XMAT,IVAL,ITOTO,MFR)
  3. C
  4. C ==================================================================
  5. C CE SOUS-PROGRAMME EST APPELE DANS CERACA ET CCERAC.
  6. C IL REGARDE SI ON A FISSURE ET PAS REFERME LA FISSURE
  7. C DANS CE CAS ON APPELLE INCONDITIONNELLEMENT OTTOSEN
  8. C
  9. C ENTREES:
  10. C -------
  11. C VAR0(NVARI) = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  12. C (NVARI= NBR. DE VARIABLES INTERNES)
  13. C
  14. C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU
  15. C XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU
  16. C (NCOMAT = NBR. DE CARACTERISTIQUES MECANIQUES DU MATERIAU)
  17. C
  18. C SORTIES:
  19. C -------
  20. C ITOTO = 1 ===> On appelle Ottosen Obligatoirement
  21. C ==================================================================
  22. C ICI IL FAUT PROGRAMMER EN FORTRAN PUR
  23. C ===================================================================
  24. C
  25. IMPLICIT INTEGER(I-N)
  26. IMPLICIT REAL*8(A-H,O-Z)
  27. -INC CCOPTIO
  28. C
  29. PARAMETER (XZER=0.D0,DEUX=2.D0,TROIS=3.D0)
  30. C
  31. DIMENSION VAR0(*),XMAT(*),IVAL(*)
  32. C
  33. DIMENSION WMAX(3),W(3),WRUPT(3),WREOUV(3),GFTR(3),XLTR(3)
  34. C
  35. C*******************************************************************
  36. C===================================================================
  37. C INITIALISATION DES VARIABLES INTERNES ET DES CARACTERISTIQUES
  38. C===================================================================
  39. C
  40. C
  41. C###################################################################
  42. C===================================================================
  43. C INITIALISATION DES CARACTERISTIQUES
  44. C===================================================================
  45. C###################################################################
  46. C
  47. C Les 2 eres valeurs de Xmat_OBLIGATOIRES sont reservees pour des MOOBL
  48. C Les 2 eres valeurs de Xmat_FACULTATIF sont reservees pour des MOFAC
  49. C et la 3 eme en cas de contraintes planes (DIM3)
  50. C
  51. C
  52. C PRINT *,'ENTREE OTOBO'
  53. IF (IFOMOD.EQ.2.AND.MFR.EQ.1) THEN
  54. NOBL=22
  55. ELSE
  56. NOBL=17
  57. IF(MFR.EQ.1.AND.IFOUR.EQ.-2) THEN
  58. NOBL=18
  59. ENDIF
  60. ENDIF
  61. C
  62. C===================================================
  63. C----------------TRACTION SIMPLE--------------------
  64. C===================================================
  65. YOUN=XMAT(1)
  66. XNU =XMAT(2)
  67. XDLTR=XMAT(2+NOBL)
  68. IF (IVAL(2+NOBL).EQ.0) XDLTR=YOUN*1.2D-4
  69. XDGFTR=XMAT(1+NOBL)
  70. IF (IVAL(1+NOBL).EQ.0) XDGFTR=XDLTR*3.9D-5
  71. BTR=XMAT(6+NOBL)
  72. IF (IVAL(6+NOBL).EQ.0) BTR=0.2D0
  73. XDWRUP=XMAT(8+NOBL)
  74. C
  75. C###################################################################
  76. C===================================================================
  77. C INITIALISATION DES VARIABLES INTERNES
  78. C===================================================================
  79. C###################################################################
  80. C
  81. C======================================
  82. C---------CAS TRIDIMENSIONNEL MASSIF---
  83. C======================================
  84. C
  85. C NVARI=20 cf. IDVAR6
  86. C
  87. IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  88. DO 10 IC=1,3
  89. ICN=IC+NOBL
  90. WMAX(IC)=VAR0(IC+1)
  91. W(IC)=VAR0(IC+4)
  92. GFTR(IC)=XMAT(ICN+9)
  93. IF (GFTR(IC).EQ.XZER) GFTR(IC)=XDGFTR
  94. XLTR(IC)=XMAT(ICN+15)
  95. IF (XLTR(IC).EQ.XZER) XLTR(IC)=XDLTR
  96. WRUPT(IC)=XMAT(ICN+24)
  97. IF (WRUPT(IC).EQ.XZER) THEN
  98. IF(XDWRUP.EQ.XZER) THEN
  99. WRUPT(IC)=DEUX*GFTR(IC)/XLTR(IC)
  100. ELSE
  101. WRUPT(IC)=XDWRUP
  102. ENDIF
  103. ENDIF
  104. 10 CONTINUE
  105. ENDIF
  106. C
  107. C======================================
  108. C-----------CAS CONT PLANE-------------
  109. C---- OU TRIDIM COQUES MINCES ---------
  110. C======================================
  111. C
  112. C NVARI=12 cf. IDVAR6
  113. C
  114. IF (IFOUR.EQ.-2.OR.
  115. . (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN
  116. DO 11 IC=1,2
  117. ICN=IC+NOBL
  118. WMAX(IC+1)=VAR0(IC+1)
  119. W(IC+1)=VAR0(IC+3)
  120. GFTR(IC+1)=XMAT(ICN+9)
  121. IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
  122. XLTR(IC+1)=XMAT(ICN+13)
  123. IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
  124. WRUPT(IC+1)=XMAT(ICN+19)
  125. IF (WRUPT(IC+1).EQ.XZER) THEN
  126. IF(XDWRUP.EQ.XZER) THEN
  127. WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
  128. ELSE
  129. WRUPT(IC+1)=XDWRUP
  130. ENDIF
  131. ENDIF
  132. 11 CONTINUE
  133. C
  134. C------------------------------------------------------------
  135. C La direction normale au plan est une direction principale
  136. C elle est definie par VF1 et indice par 1
  137. C------------------------------------------------------------
  138. C
  139. WMAX(1)=XZER
  140. W(1)=XZER
  141. GFTR(1)=XDGFTR
  142. XLTR(1)=XDLTR
  143. WRUPT(1)=DEUX*GFTR(1)/XLTR(1)
  144. ENDIF
  145. C
  146. C===========================================
  147. C-----------CAS DEFO PLANE/AXIS-------------
  148. C===========================================
  149. C
  150. C NVARI=15 cf. IDVAR6
  151. C
  152. IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3.OR.IFOUR.EQ.0) THEN
  153. DO 12 IC=1,2
  154. ICN=IC+NOBL
  155. WMAX(IC+1)=VAR0(IC+1)
  156. W(IC+1)=VAR0(IC+4)
  157. GFTR(IC+1)=XMAT(ICN+10)
  158. IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
  159. XLTR(IC+1)=XMAT(ICN+16)
  160. IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
  161. WRUPT(IC+1)=XMAT(ICN+25)
  162. IF (WRUPT(IC+1).EQ.XZER) THEN
  163. IF(XDWRUP.EQ.XZER) THEN
  164. WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
  165. ELSE
  166. WRUPT(IC+1)=XDWRUP
  167. ENDIF
  168. ENDIF
  169. 12 CONTINUE
  170. C
  171. C__________________________________________________________
  172. C les caracteristiques dans la direction normale au plan
  173. C sont traitees particulierement
  174. C----------------------------------------------------------
  175. C
  176. XDEPSR=XMAT(10+NOBL)
  177. IF (IVAL(10+NOBL).EQ.0) XDEPSR=TROIS*XDLTR/YOUN
  178. C
  179. C------------------------------------------------------------
  180. C La direction normale au plan est une direction principale
  181. C elle est definie par VF1 et indice par 1
  182. C------------------------------------------------------------
  183. C
  184. WMAX(1)=VAR0(4)
  185. W(1)=VAR0(7)
  186. WRUPT(1)=XDEPSR
  187. ENDIF
  188.  
  189. C#######################################
  190. C=======================================
  191. C---------ON DETERMINE SI ON DOIT OU NON
  192. C APPELER OTTOSEN ----------
  193. C=======================================
  194. C
  195. C L'élement at-il été fissuré ou rompu
  196. IFIFI = 0
  197. DO 13 I=1,3
  198. IF (WMAX(I).GT.0.D0) THEN
  199. IFIFI = 1
  200. ENDIF
  201. 13 CONTINUE
  202. ITOTO = 0
  203. IF (IFIFI.NE.1) THEN
  204. C PRINT *,'IFIFI =0'
  205. RETURN
  206. ENDIF
  207. DO 14 I=1,3
  208. WREOUV(I) = BTR*MIN(WMAX(I),WRUPT(I))
  209. C PRINT *,'W(',I,')=',W(I)
  210. C PRINT *,'WREOUV(',I,')=',WREOUV(I),WRUPT(I),(BTR*WRUPT(I))
  211. IF (W(I).GT.WREOUV(I)) THEN
  212. ITOTO = 1
  213. ENDIF
  214. 14 CONTINUE
  215. C IF (ITOTO.EQ.0) THEN
  216. C PRINT *,'J ai refermé ma fissure '
  217. C ENDIF
  218. RETURN
  219. END
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  

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