Télécharger somdru.eso

Retour à la liste

Numérotation des lignes :

somdru
  1. C SOMDRU SOURCE OF166741 25/11/04 21:16:08 12349
  2. SUBROUTINE SOMDRU(IBOU,SI,DEPS,EPST,
  3. . EPSTAR,SN,XMAT,YUNG,XNU,PENTE,KERRE,ecou,necou)
  4.  
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL *8(A-H,O-Z)
  7.  
  8. -INC PPARAM
  9. -INC CCOPTIO
  10.  
  11. -INC TECOU
  12.  
  13. DIMENSION XMAT(*)
  14. DIMENSION ORMAT(1)
  15.  
  16. * QUELQUES INITIALISATIONS
  17. *
  18. KERRE = 0
  19. XMATE =XMAT(1)
  20. XMATM =XMAT(2)
  21. XMATKL=XMAT(3)
  22. XMATC =XMAT(4)
  23. XMATD =XMAT(5)
  24. PEPSI =SQRT(2.D0*XMATC*XMATC+XMATD*XMATD)
  25. XI1LIM=SN/XMATE
  26.  
  27. JFOUR = necou.IFOURB
  28. ITYPL = necou.ITYP
  29. *
  30. * PROJECTION AU SOMMET
  31. *
  32. IF(IIMPI.EQ.15) WRITE(IOIMP,77387)
  33. 77387 FORMAT('0 SOMDRU - ON PROJETTE AU SOMMET ')
  34. IF(IIMPI.EQ.15) WRITE(IOIMP,77388) XI1LIM,PENTE
  35. 77388 FORMAT('0 SOMDRU - XI1LIM= ',1PE12.5,2X,'PENTE= ',1PE12.5/)
  36.  
  37. CALL ZDANUL(SIGEL,6)
  38. CALL ZDANUL(EPSPLA,6)
  39. *
  40. * 1-ER CAS PAS D'ECROUISSAGE
  41. *
  42. IF(PENTE.NE.0.D0) GO TO 300
  43. *
  44. 400 CONTINUE
  45. IF(ITYPL.NE.1.AND.ITYPL.NE.5) GO TO 201
  46. DO 202 IB=1,3
  47. SIGEL(IB)=XI1LIM/3.D0
  48. 202 CONTINUE
  49. GO TO 205
  50. 201 CONTINUE
  51. SIGEL(1)=0.5D0*XI1LIM
  52. SIGEL(2)=SIGEL(1)
  53. IF(ITYPL.NE.2) GO TO 204
  54. SIGEL(1)=0.5D0*SIGEL(1)
  55. SIGEL(2)=SIGEL(1)
  56. SIGEL(4)=SIGEL(1)
  57. SIGEL(5)=SIGEL(1)
  58. GO TO 205
  59. 204 IF(ITYPL.LT.7) GO TO 205
  60. SIGEL(5)=0.D0
  61. SIGEL(2)=0.D0
  62. SIGEL(4)=SIGEL(1)
  63. IF(ITYPL.LT.8) GO TO 205
  64. SIGEL(4)=0.D0
  65. SIGEL(1)=XI1LIM
  66. 205 CONTINUE
  67. IF(IIMPI.EQ.15) WRITE(IOIMP,77389) (SIGEL(I),I=1,IBOU)
  68. 77389 FORMAT(1X,'SOMDRU - SIGEL '/(6(1X,1PE12.5)))
  69. *
  70. * ON CALCULE ALORS DELTA SIGMA PLASTIQUE
  71. *
  72. DO 209 IB=1,IBOU
  73. DSIGP(IB)=STOT(IB)-SIGEL(IB)
  74. 209 CONTINUE
  75. *
  76. * ON CALCULE DELTA EPSILON PLASTIQUE PUIS DELTA EPSILON *
  77. *
  78. CALL EPSIG(DSIGP,EPSPLA,JFOUR,YUNG,XNU,ITYPL,ORMAT,XMAT)
  79. DEPS=VONEPS(EPSPLA,ITYPL,ALFAH,COVNMS)
  80. EPST=EPSTAR+DEPS
  81. IF(IIMPI.EQ.15) WRITE(IOIMP,77390) EPSTAR,DEPS,EPST
  82. 77390 FORMAT(1X,'EPSTAR=',1PE12.5,2X,'DEPS=',1PE12.5,2X,'EPST=',
  83. . 1PE12.5/)
  84. CALL CKRIT(IMAPLA,SIGEL,ITYPL,XMAT,ALFAH,COVNMS,XINV,SI)
  85. RETURN
  86. *
  87. * 2-EME CAS ECROUISSAGE
  88. *
  89. 300 CONTINUE
  90. *
  91. * CAS DES CONTRAINTES PLANES
  92. *
  93. IF(ITYPL.EQ.6) THEN
  94. IF((PENTE*XMATKL.GE.0.D0).OR.(XMAT(9).EQ.0.D0)) THEN
  95. KERRE=52
  96. RETURN
  97. ENDIF
  98. DEPS= -XI1LIM/XMAT(9)
  99. EPST= EPSTAR+DEPS
  100. IF(IIMPI.EQ.15) WRITE(IOIMP,77389) (SIGEL(I),I=1,IBOU)
  101. IF(IIMPI.EQ.15) WRITE(IOIMP,77390) EPSTAR,DEPS,EPST
  102. CALL CKRIT(IMAPLA,SIGEL,ITYPL,XMAT,ALFAH,COVNMS,XINV,SI)
  103. LAPOIN=1
  104. *
  105. * CAS DU MASSIF
  106. *
  107. ELSE IF(ITYPL.EQ.1.OR.ITYPL.EQ.5) THEN
  108. IF (XMATE.EQ.0.D0) THEN
  109. KERRE=52
  110. RETURN
  111. ENDIF
  112. FAC1=(1.D0-2.D0*XNU)/(3.D0*XMATE*YUNG)
  113. FAC2=FAC1*XI1LIM
  114. FAC1=FAC1*XMAT(9)
  115. UNSE = 1.D0/YUNG
  116. UNSE2= UNSE*2.D0*(1.D0+XNU)
  117. W1(1)= UNSE*(STOT(1)-XNU*(STOT(2)+STOT(3)))-FAC2
  118. W1(2)= UNSE*(STOT(2)-XNU*(STOT(1)+STOT(3)))-FAC2
  119. W1(3)= UNSE*(STOT(3)-XNU*(STOT(1)+STOT(2)))-FAC2
  120. W1(4)= UNSE2*STOT(4)
  121. W1(5)= UNSE2*STOT(5)
  122. W1(6)= UNSE2*STOT(6)
  123. AA = 1.D0-2.D0*FAC1*FAC1
  124. BB = (2.D0/3.D0)*FAC1*(W1(1)+W1(2)+W1(3))
  125. CC = (VONEPS(W1,ITYPL,ALFAH,COVNMS))**2
  126. IF(AA.EQ.0.D0) THEN
  127. IF (BB.EQ.0.D0) THEN
  128. KERRE=53
  129. RETURN
  130. ENDIF
  131. DEPS= CC/(2.D0*BB)
  132. IF (DEPS.LT.0D0) THEN
  133. KERRE=53
  134. RETURN
  135. ENDIF
  136. ELSE
  137. DISCR=BB*BB+AA*CC
  138. IF(DISCR.LT.0D0) THEN
  139. KERRE=53
  140. RETURN
  141. ENDIF
  142. DISCR=SQRT(DISCR)
  143. DEPS1 = (-BB+DISCR)/AA
  144. DEPS2 = (-BB-DISCR)/AA
  145. DEPS=MAX(DEPS1,DEPS2)
  146. IF(DEPS.LT.0D0) THEN
  147. KERRE=53
  148. RETURN
  149. ENDIF
  150. ENDIF
  151.  
  152. SNN = XI1LIM+XMAT(9)*DEPS
  153. IF (SNN .LT. 0.D0) THEN
  154. SNN=0.D0
  155. DEPS= -XI1LIM/XMAT(9)
  156. ENDIF
  157. DO 302 IB=1,3
  158. SIGEL(IB)=SNN/3.D0
  159. 302 CONTINUE
  160. EPST=EPSTAR+DEPS
  161. IF(IIMPI.EQ.15) THEN
  162. WRITE(IOIMP,77389) (SIGEL(I),I=1,IBOU)
  163. WRITE(IOIMP,77390) EPSTAR,DEPS,EPST
  164. ENDIF
  165. CALL CKRIT(IMAPLA,SIGEL,ITYPL,XMAT,ALFAH,COVNMS,XINV,SI)
  166.  
  167. * CAS NON PREVUS A CE JOUR
  168. ELSE
  169. KERRE=51
  170. RETURN
  171. ENDIF
  172.  
  173. RETURN
  174. END
  175.  
  176.  
  177.  

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