Télécharger ottofi.eso

Retour à la liste

Numérotation des lignes :

  1. C OTTOFI SOURCE CHAT 05/01/13 02:07:32 5004
  2. SUBROUTINE OTTOFI(SIGMA,NFISSU,NVF,XLTR,XINVL,
  3. & VF,JRESU,FC,PRECIZ,KERRE)
  4. *
  5. C==========================================================================
  6. C
  7. C ENTREES :
  8. C SIGMA,NFISSU,NVF,XLTR,XINVL
  9. C
  10. C SORTIES :
  11. C FC CRITERES
  12. C JRESU,VF (JRESU = 1 POUR LES DIRECTIONS POTENTIELLES DE
  13. C FISSURATION DONT LA DIRECTION EST CONNUE
  14. C JRESU = 2 POUR LES DIRECTIONS POTENTIELLES DE
  15. C FISSURATION DONT LA DIRECTION EST INCONNUE EN PLAN
  16. C JRESU = 3 POUR LES DIRECTIONS POTENTIELLES DE
  17. C FISSURATION DONT LA DIRECTION EST INCONNUE EN 3D
  18. C VF CONTIENT LES VECTEURS CORRESPONDANTS)
  19. C==========================================================================
  20. C
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8(A-H,O-Z)
  23. -INC CCOPTIO
  24. C
  25. PARAMETER (XZER=0.D0,UN=1.D0)
  26. C
  27. DIMENSION SIGMA(6),XLTR(3),VF(3,3),XINVL(3)
  28. *
  29. * VF 1-ER INDICE : COMPOSANTE
  30. * 2-EME INDICE : DIRECTION DE FISSURE
  31. C
  32. DIMENSION A3(3,3),D3(3),E3(3,3)
  33. DIMENSION JRESU(3),FC(3)
  34. *
  35. DO IC=1,3
  36. JRESU(IC)=0
  37. FC(IC)=-1.D4*PRECIZ
  38. DO JC=1,3
  39. VF(IC,JC)=XZER
  40. ENDDO
  41. ENDDO
  42. C
  43. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  44. C LES TROIS DIRECTIONS SONT DEJA FISSUREES
  45. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  46. C
  47. IF (NFISSU.EQ.3) THEN
  48. RETURN
  49. ENDIF
  50. C
  51. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  52. C DEUX DIRECTIONS SONT DEJA FISSUREES
  53. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  54. C
  55. IF (NFISSU.EQ.2) THEN
  56. C
  57. C SEULE LA DIRECTION no IFIS N EST PAS FISSUREE
  58. C
  59. IF ((XINVL(1)*XINVL(2)).NE.XZER) IFIS=3
  60. IF ((XINVL(1)*XINVL(3)).NE.XZER) IFIS=2
  61. IF ((XINVL(2)*XINVL(3)).NE.XZER) IFIS=1
  62. *
  63. * IF(IIMPI.EQ.42) THEN
  64. * WRITE(IOIMP,77003) IFIS
  65. *77003 FORMAT( 2X, 'OTTOFI - IFIS =',I4/)
  66. * ENDIF
  67. C
  68. FC(IFIS)=SIGMA(IFIS)-XLTR(IFIS)
  69. JRESU(IFIS)=1
  70. IF (FC(IFIS).GT.-PRECIZ) THEN
  71. VF(IFIS,IFIS)=UN
  72. ENDIF
  73. ENDIF
  74. C
  75. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  76. C UNE DIRECTION EST DEJA FISSUREE
  77. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  78. C
  79. IF (NFISSU.EQ.1) THEN
  80. C
  81. C SEULE LA DIRECTION no IFIS EST FISSUREE
  82. C
  83. IF (XINVL(1).NE.XZER) IFIS=1
  84. IF (XINVL(2).NE.XZER) IFIS=2
  85. IF (XINVL(3).NE.XZER) IFIS=3
  86. *
  87. * IF(IIMPI.EQ.42) THEN
  88. * WRITE(IOIMP,77004) IFIS
  89. *77004 FORMAT( 2X, 'OTTOFI - IFIS =',I4/)
  90. * ENDIF
  91. C
  92. C CAS 1 :
  93. C DEUX DIRECTIONS DE FAIBLESSE NON FISSUREE, UNE DIRECTION FISSUREE
  94. C
  95. C remarque : ce cas est identique a une direction de faiblesse
  96. C non fissuree et une direction de fissuration.
  97. C
  98. IF (NVF.EQ.2.OR.NVF.EQ.1) THEN
  99. C
  100. C direction 1 fissuree
  101. C
  102.  
  103. IF (IFIS.EQ.1) THEN
  104. FC(2)=SIGMA(2)-XLTR(2)
  105. JRESU(2)=1
  106. IF (FC(2).GT.-PRECIZ) THEN
  107. VF(2,2)=UN
  108. ENDIF
  109. FC(3)=SIGMA(3)-XLTR(3)
  110. JRESU(3)=1
  111. IF (FC(3).GT.-PRECIZ) THEN
  112. VF(3,3)=UN
  113. ENDIF
  114. ENDIF
  115. C
  116. C direction 2 fissuree
  117. C
  118. IF (IFIS.EQ.2) THEN
  119. FC(1)=SIGMA(1)-XLTR(1)
  120. JRESU(1)=1
  121. IF (FC(1).GT.-PRECIZ) THEN
  122. VF(1,1)=UN
  123. ENDIF
  124. FC(3)=SIGMA(3)-XLTR(3)
  125. JRESU(3)=1
  126. IF (FC(3).GT.-PRECIZ) THEN
  127. VF(3,3)=UN
  128. ENDIF
  129. ENDIF
  130. C
  131. C direction 3 fissuree
  132. C
  133. C remarque : ce cas est impossible s il n y a qu une direction imposee
  134. C et une direction de fissuration.
  135. C
  136. IF (IFIS.EQ.3) THEN
  137. FC(1)=SIGMA(1)-XLTR(1)
  138. JRESU(1)=1
  139. IF (FC(1).GT.-PRECIZ) THEN
  140. VF(1,1)=UN
  141. ENDIF
  142. FC(2)=SIGMA(2)-XLTR(2)
  143. JRESU(2)=1
  144. IF (FC(2).GT.-PRECIZ) THEN
  145. VF(2,2)=UN
  146. ENDIF
  147. ENDIF
  148. ENDIF
  149. C
  150. C CAS 2 : PAS DE DIRECTION DE FAIBLESSE
  151. C
  152. IF (NVF.EQ.0) THEN
  153. C
  154. CALL ZERO(A3,3,3)
  155. A3(1,1)=SIGMA(2)
  156. A3(1,2)=SIGMA(6)
  157. A3(2,1)=SIGMA(6)
  158. A3(2,2)=SIGMA(3)
  159. CALL JACOB3(A3,2,D3,E3)
  160.  
  161. *
  162. IF(IIMPI.EQ.42) THEN
  163. WRITE(IOIMP,78783) D3(1),D3(2)
  164. 78783 FORMAT( 2X, 'OTTOFI - D3(1)=',1PE12.5,2X,
  165. & ' D3(2)=',1PE12.5/)
  166. ENDIF
  167. C
  168. C---------rq XLTR(2)=XLTR(3) puisque l on n a pas fissure---------
  169. C-----------et qu il n y a pas de direction de faiblesse----------
  170. C
  171. IVP1=1
  172. IVP2=2
  173. IF(D3(2).GE.D3(1)) THEN
  174. IVP1=2
  175. IVP2=1
  176. ENDIF
  177. *
  178. FC(2)=D3(IVP1)-XLTR(2)
  179. JRESU(2)=2
  180. IF(FC(2).GT.-PRECIZ) THEN
  181. VF(2,2)=E3(1,IVP1)
  182. VF(3,2)=E3(2,IVP1)
  183. ENDIF
  184. *
  185. FC(3)=D3(IVP2)-XLTR(3)
  186. JRESU(3)=2
  187. IF(FC(3).GT.-PRECIZ) THEN
  188. VF(2,3)=E3(1,IVP2)
  189. VF(3,3)=E3(2,IVP2)
  190. ENDIF
  191. ENDIF
  192. RETURN
  193. ENDIF
  194. C
  195. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  196. C AUCUNE DIRECTION DEJA FISSUREE
  197. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  198. C
  199. IF (NFISSU.EQ.0) THEN
  200. C
  201. C CAS 1 : DEUX OU TROIS DIRECTIONS DE FAIBLESSE
  202. C
  203.  
  204. IF (NVF.EQ.2.OR.NVF.EQ.3) THEN
  205. FC(1)=SIGMA(1)-XLTR(1)
  206. JRESU(1)=1
  207. IF (FC(1).GT.-PRECIZ) THEN
  208. VF(1,1)=UN
  209. ENDIF
  210. FC(2)=SIGMA(2)-XLTR(2)
  211. JRESU(2)=1
  212. IF (FC(2).GT.-PRECIZ) THEN
  213. VF(2,2)=UN
  214. ENDIF
  215. FC(3)=SIGMA(3)-XLTR(3)
  216. JRESU(3)=1
  217. IF (FC(3).GT.-PRECIZ) THEN
  218. VF(3,3)=UN
  219. ENDIF
  220. ENDIF
  221. C
  222. C CAS 2 : UNE DIRECTION DE FAIBLESSE
  223. C
  224. IF (NVF.EQ.1) THEN
  225. FC(1)=SIGMA(1)-XLTR(1)
  226. JRESU(1)=1
  227. IF (FC(1).GT.-PRECIZ) THEN
  228. VF(1,1)=UN
  229. ENDIF
  230. C
  231. CALL ZERO(A3,3,3)
  232. A3(1,1)=SIGMA(2)
  233. A3(1,2)=SIGMA(6)
  234. A3(2,1)=SIGMA(6)
  235. A3(2,2)=SIGMA(3)
  236. C
  237. CALL JACOB3(A3,2,D3,E3)
  238.  
  239. *
  240. IF(IIMPI.EQ.42) THEN
  241. WRITE(IOIMP,78784) D3(1),D3(2)
  242. 78784 FORMAT( 2X, 'OTTOFI - D3(1)=',1PE12.5,2X,
  243. & ' D3(2)=',1PE12.5/)
  244. ENDIF
  245. C
  246. IVP1=1
  247. IVP2=2
  248. IF(D3(2).GE.D3(1)) THEN
  249. IVP1=2
  250. IVP2=1
  251. ENDIF
  252. *
  253. FC(2)=D3(IVP1)-XLTR(2)
  254. JRESU(2)=2
  255. IF(FC(2).GT.-PRECIZ) THEN
  256. VF(2,2)=E3(1,IVP1)
  257. VF(3,2)=E3(2,IVP1)
  258. ENDIF
  259. *
  260. FC(3)=D3(IVP2)-XLTR(3)
  261. JRESU(3)=2
  262. IF(FC(3).GT.-PRECIZ) THEN
  263. VF(2,3)=E3(1,IVP2)
  264. VF(3,3)=E3(2,IVP2)
  265. ENDIF
  266. ENDIF
  267. C
  268. C CAS 3 : PAS DE DIRECTION DE FAIBLESSE
  269. C
  270. IF (NVF.EQ.0) THEN
  271. C
  272. A3(1,1)=SIGMA(1)
  273. A3(1,2)=SIGMA(4)
  274. A3(1,3)=SIGMA(5)
  275. A3(2,1)=SIGMA(4)
  276. A3(2,2)=SIGMA(2)
  277. A3(2,3)=SIGMA(6)
  278. A3(3,1)=SIGMA(5)
  279. A3(3,2)=SIGMA(6)
  280. A3(3,3)=SIGMA(3)
  281. *
  282. IF(IIMPI.EQ.42) THEN
  283. WRITE(IOIMP,78788) ((A3(I,J),J=1,3),I=1,3)
  284. 78788 FORMAT( 2X, 'OTTOFI - MATRICE A3 '/(3(1X,1PE12.5))/)
  285. ENDIF
  286. *
  287. CALL JACOB3(A3,3,D3,E3)
  288. *
  289. IF(IIMPI.EQ.42) THEN
  290. WRITE(IOIMP,78785) D3(1),D3(2),D3(3)
  291. 78785 FORMAT( 2X, 'OTTOFI - D3(1)=',1PE12.5,2X,
  292. & ' D3(2)=',1PE12.5,2X,' D3(3)=',1PE12.5/)
  293. ENDIF
  294. C
  295. IF (D3(1).GE.D3(2).AND.D3(1).GE.D3(3))THEN
  296. IVP1=1
  297. IVP2=2
  298. IVP3=3
  299. IF (D3(3).GE.D3(2)) THEN
  300. IVP2=3
  301. IVP3=2
  302. ENDIF
  303. ELSEIF (D3(2).GE.D3(3).AND.D3(2).GE.D3(1))THEN
  304. IVP1=2
  305. IVP2=3
  306. IVP3=1
  307. IF (D3(1).GE.D3(3)) THEN
  308. IVP2=1
  309. IVP3=3
  310. ENDIF
  311. ELSEIF (D3(3).GE.D3(1).AND.D3(3).GE.D3(2))THEN
  312. IVP1=3
  313. IVP2=1
  314. IVP3=2
  315. IF (D3(2).GE.D3(1)) THEN
  316. IVP2=2
  317. IVP3=1
  318. ENDIF
  319. ENDIF
  320. *
  321. FC(1)=D3(IVP1)-XLTR(1)
  322. JRESU(1)=3
  323. IF(FC(1).GT.-PRECIZ) THEN
  324. VF(1,1)=E3(1,IVP1)
  325. VF(2,1)=E3(2,IVP1)
  326. VF(3,1)=E3(3,IVP1)
  327. ENDIF
  328. *
  329. FC(2)=D3(IVP2)-XLTR(2)
  330. JRESU(2)=3
  331. IF(FC(2).GT.-PRECIZ) THEN
  332. VF(1,2)=E3(1,IVP2)
  333. VF(2,2)=E3(2,IVP2)
  334. VF(3,2)=E3(3,IVP2)
  335. ENDIF
  336. *
  337. FC(3)=D3(IVP3)-XLTR(2)
  338. JRESU(3)=3
  339. IF(FC(3).GT.-PRECIZ) THEN
  340. VF(1,3)=E3(1,IVP3)
  341. VF(2,3)=E3(2,IVP3)
  342. VF(3,3)=E3(3,IVP3)
  343. ENDIF
  344. ENDIF
  345. ENDIF
  346.  
  347. RETURN
  348. END
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  

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