Télécharger ottoxf.eso

Retour à la liste

Numérotation des lignes :

ottoxf
  1. C OTTOXF SOURCE CHAT 05/01/13 02:08:01 5004
  2. SUBROUTINE OTTOXF(SIG0,DSIGT,XINVL,XLTR,NFISSU,NVF,
  3. & XXF,PRECIZ,KERRE)
  4. *
  5. C==========================================================================
  6. C
  7. C ENTREES :
  8. C SIG0,DSIGT,NFISSU,NVF,XLTR,XINVL
  9. C
  10. C SORTIES :
  11. C XXF
  12. C==========================================================================
  13. C
  14. IMPLICIT INTEGER(I-N)
  15. IMPLICIT REAL*8(A-H,O-Z)
  16.  
  17. -INC PPARAM
  18. -INC CCOPTIO
  19. C
  20. PARAMETER (XZER=0.D0,UN=1.D0)
  21. C
  22. DIMENSION SIG0(6),DSIGT(6),XLTR(3),XINVL(3)
  23. *
  24. DIMENSION A3(3,3),B3(3,3),D3(3),XXF(3)
  25. *
  26. DO IC=1,3
  27. XXF(IC)=1.D4
  28. ENDDO
  29. C
  30. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  31. C LES TROIS DIRECTIONS SONT DEJA FISSUREES
  32. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  33. C
  34. IF (NFISSU.EQ.3) THEN
  35. RETURN
  36. ENDIF
  37. C
  38. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  39. C DEUX DIRECTIONS SONT DEJA FISSUREES
  40. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  41. C
  42. IF (NFISSU.EQ.2) THEN
  43. C
  44. C SEULE LA DIRECTION no IFIS N EST PAS FISSUREE
  45. C
  46. IF ((XINVL(1)*XINVL(2)).NE.XZER) IFIS=3
  47. IF ((XINVL(1)*XINVL(3)).NE.XZER) IFIS=2
  48. IF ((XINVL(2)*XINVL(3)).NE.XZER) IFIS=1
  49. *
  50. IF (DSIGT(IFIS).NE.XZER) THEN
  51. XXF(IFIS)=(XLTR(IFIS)-SIG0(IFIS))/DSIGT(IFIS)
  52. ENDIF
  53. ENDIF
  54. C
  55. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  56. C UNE DIRECTION EST DEJA FISSUREE
  57. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  58. C
  59. IF (NFISSU.EQ.1) THEN
  60. C
  61. C SEULE LA DIRECTION no IFIS EST FISSUREE
  62. C
  63. IF (XINVL(1).NE.XZER) IFIS=1
  64. IF (XINVL(2).NE.XZER) IFIS=2
  65. IF (XINVL(3).NE.XZER) IFIS=3
  66. *
  67. * IF(IIMPI.EQ.42) THEN
  68. * WRITE(IOIMP,77004) IFIS
  69. *77004 FORMAT( 2X, 'OTTOXF - IFIS =',I4/)
  70. * ENDIF
  71. C
  72. C CAS 1 :
  73. C DEUX DIRECTIONS DE FAIBLESSE NON FISSUREE, UNE DIRECTION FISSUREE
  74. C
  75. C remarque : ce cas est identique a une direction de faiblesse
  76. C non fissuree et une direction de fissuration.
  77. C
  78. IF (NVF.EQ.2.OR.NVF.EQ.1) THEN
  79. C
  80. C direction 1 fissuree
  81. C
  82.  
  83. IF (IFIS.EQ.1) THEN
  84. IF (DSIGT(2).NE.XZER) THEN
  85. XXF(2)=(XLTR(2)-SIG0(2))/DSIGT(2)
  86. ENDIF
  87. IF (DSIGT(3).NE.XZER) THEN
  88. XXF(3)=(XLTR(3)-SIG0(3))/DSIGT(3)
  89. ENDIF
  90. ENDIF
  91. C
  92. C direction 2 fissuree
  93. C
  94. IF (IFIS.EQ.2) THEN
  95. IF (DSIGT(1).NE.XZER) THEN
  96. XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
  97. ENDIF
  98. IF (DSIGT(3).NE.XZER) THEN
  99. XXF(3)=(XLTR(3)-SIG0(3))/DSIGT(3)
  100. ENDIF
  101. ENDIF
  102. C
  103. C direction 3 fissuree
  104. C
  105. C remarque : ce cas est impossible s il n y a qu une direction imposee
  106. C et une direction de fissuration.
  107. C
  108. IF (IFIS.EQ.3) THEN
  109. IF (DSIGT(1).NE.XZER) THEN
  110. XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
  111. ENDIF
  112. IF (DSIGT(2).NE.XZER) THEN
  113. XXF(2)=(XLTR(2)-SIG0(2))/DSIGT(2)
  114. ENDIF
  115. ENDIF
  116. ENDIF
  117. C
  118. C CAS 2 : PAS DE DIRECTION DE FAIBLESSE
  119. C
  120. C---------rq XLTR(2)=XLTR(3) puisque l on n a pas fissure---------
  121. C-----------et qu il n y a pas de direction de faiblesse----------
  122. C
  123. IF (NVF.EQ.0) THEN
  124. C
  125. CALL ZERO(A3,3,3)
  126. CALL ZERO(B3,3,3)
  127. A3(1,1)=SIG0(2)-XLTR(2)
  128. A3(1,2)=SIG0(6)
  129. A3(2,1)=SIG0(6)
  130. A3(2,2)=SIG0(3)-XLTR(2)
  131. *
  132. B3(1,1)=DSIGT(2)
  133. B3(1,2)=DSIGT(6)
  134. B3(2,1)=DSIGT(6)
  135. B3(2,2)=DSIGT(3)
  136. CALL OTTOB3(A3,B3,2,D3,KERRE)
  137. IF(KERRE.NE.0) RETURN
  138. C
  139. XXF(2)=D3(1)
  140. XXF(3)=D3(2)
  141. ENDIF
  142. RETURN
  143. ENDIF
  144. C
  145. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  146. C AUCUNE DIRECTION DEJA FISSUREE
  147. C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  148. C
  149. IF (NFISSU.EQ.0) THEN
  150. C
  151. C CAS 1 : DEUX OU TROIS DIRECTIONS DE FAIBLESSE
  152. C
  153.  
  154. IF (NVF.EQ.2.OR.NVF.EQ.3) THEN
  155. IF (DSIGT(1).NE.XZER) THEN
  156. XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
  157. ENDIF
  158. IF (DSIGT(2).NE.XZER) THEN
  159. XXF(2)=(XLTR(2)-SIG0(2))/DSIGT(2)
  160. ENDIF
  161. IF (DSIGT(3).NE.XZER) THEN
  162. XXF(3)=(XLTR(3)-SIG0(3))/DSIGT(3)
  163. ENDIF
  164. ENDIF
  165. C
  166. C CAS 2 : UNE DIRECTION DE FAIBLESSE
  167. C
  168. IF (NVF.EQ.1) THEN
  169. IF (DSIGT(1).NE.XZER) THEN
  170. XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
  171. ENDIF
  172. C
  173. CALL ZERO(A3,3,3)
  174. CALL ZERO(B3,3,3)
  175. *
  176. A3(1,1)=SIG0(2)-XLTR(2)
  177. A3(1,2)=SIG0(6)
  178. A3(2,1)=SIG0(6)
  179. A3(2,2)=SIG0(3)-XLTR(2)
  180. *
  181. B3(1,1)=DSIGT(2)
  182. B3(1,2)=DSIGT(6)
  183. B3(2,1)=DSIGT(6)
  184. B3(2,2)=DSIGT(3)
  185. *
  186. CALL OTTOB3(A3,B3,2,D3,KERRE)
  187. IF(KERRE.NE.0) RETURN
  188. *
  189. XXF(2)=D3(1)
  190. XXF(3)=D3(2)
  191. ENDIF
  192. C
  193. C CAS 3 : PAS DE DIRECTION DE FAIBLESSE
  194. C
  195. IF (NVF.EQ.0) THEN
  196. *
  197. A3(1,1)=SIG0(1)-XLTR(1)
  198. A3(1,2)=SIG0(4)
  199. A3(1,3)=SIG0(5)
  200. A3(2,1)=SIG0(4)
  201. A3(2,2)=SIG0(2)-XLTR(1)
  202. A3(2,3)=SIG0(6)
  203. A3(3,1)=SIG0(5)
  204. A3(3,2)=SIG0(6)
  205. A3(3,3)=SIG0(3)-XLTR(1)
  206. *
  207. B3(1,1)=DSIGT(1)
  208. B3(1,2)=DSIGT(4)
  209. B3(1,3)=DSIGT(5)
  210. B3(2,1)=DSIGT(4)
  211. B3(2,2)=DSIGT(2)
  212. B3(2,3)=DSIGT(6)
  213. B3(3,1)=DSIGT(5)
  214. B3(3,2)=DSIGT(6)
  215. B3(3,3)=DSIGT(3)
  216. *
  217. CALL OTTOB3(A3,B3,3,D3,KERRE)
  218. IF(KERRE.NE.0) RETURN
  219. *
  220. XXF(1)=D3(1)
  221. XXF(2)=D3(2)
  222. XXF(3)=D3(3)
  223.  
  224. ENDIF
  225. ENDIF
  226.  
  227. RETURN
  228. END
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  

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