Télécharger otobo.eso

Retour à la liste

Numérotation des lignes :

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

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