Télécharger somdru.eso

Retour à la liste

Numérotation des lignes :

somdru
  1. C SOMDRU SOURCE PV 22/04/22 21:15:13 11344
  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. DIMENSION XMAT(*)
  8. DIMENSION ORMAT(1)
  9.  
  10. -INC PPARAM
  11. -INC CCOPTIO
  12. *
  13. SEGMENT ECOU
  14. *** COMMON/ECOU/TEST,ALFAH,
  15. REAL*8 TEST, ALFAH,
  16. 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),
  17. 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),W1(6),W2(6),
  18. 1 DALPHA(6),EPSPLA(6),E(12),XINV(3),
  19. 2 SIPLAD(6),DSIGP0(6),TET,TETI
  20. ENDSEGMENT
  21. C COMMON/ECOU/TEST,ALFAH,
  22. C . HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),
  23. C . CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),W1(6),W2(6),
  24. C . DALPHA(6),EPSPLA(6),E(12),XINV(3),
  25. C . SIPLAD(6),DSIGP0(6),TET,TETI
  26. *
  27. SEGMENT NECOU
  28. * COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  29. INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  30. . ITYP,JFOUR,IFLUAG,
  31. . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  32. . JFLUAG,LEGAUS,LFLUAG,
  33. . IRELAX,JNTRIN,MFLUAG,JELEM,JGRDEF
  34. ENDSEGMENT
  35. C COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  36. C . ITYP,JFOUR,IFLUAG,
  37. C . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  38. C . JFLUAG,LEGAUS,LFLUAG,
  39. C . IRELAX,JNTRIN,MFLUAG,JELEM,JGRDEF
  40. *
  41. * QUELQUES INITIALISATIONS
  42. *
  43. KERRE=0
  44. XMATE =XMAT(1)
  45. XMATM =XMAT(2)
  46. XMATKL=XMAT(3)
  47. XMATC =XMAT(4)
  48. XMATD =XMAT(5)
  49. PEPSI =SQRT(2.D0*XMATC*XMATC+XMATD*XMATD)
  50. * PENTE =XMAT(9)*PEPSI
  51. XI1LIM=SN/XMATE
  52. *
  53. * PROJECTION AU SOMMET
  54. *
  55. IF(IIMPI.EQ.15) WRITE(IOIMP,77387)
  56. 77387 FORMAT('0 SOMDRU - ON PROJETTE AU SOMMET ')
  57. IF(IIMPI.EQ.15) WRITE(IOIMP,77388) XI1LIM,PENTE
  58. 77388 FORMAT('0 SOMDRU - XI1LIM= ',1PE12.5,2X,'PENTE= ',1PE12.5/)
  59. CALL ZDANUL(SIGEL,6)
  60. CALL ZDANUL(EPSPLA,6)
  61. *
  62. * 1-ER CAS PAS D'ECROUISSAGE
  63. *
  64. IF(PENTE.NE.0.D0) GO TO 300
  65. *
  66. 400 CONTINUE
  67. IF(ITYP.NE.1.AND.ITYP.NE.5) GO TO 201
  68. DO 202 IB=1,3
  69. SIGEL(IB)=XI1LIM/3.D0
  70. 202 CONTINUE
  71. GO TO 205
  72. 201 CONTINUE
  73. SIGEL(1)=0.5D0*XI1LIM
  74. SIGEL(2)=SIGEL(1)
  75. IF(ITYP.NE.2) GO TO 204
  76. SIGEL(1)=0.5D0*SIGEL(1)
  77. SIGEL(2)=SIGEL(1)
  78. SIGEL(4)=SIGEL(1)
  79. SIGEL(5)=SIGEL(1)
  80. GO TO 205
  81. 204 IF(ITYP.LT.7) GO TO 205
  82. SIGEL(5)=0.D0
  83. SIGEL(2)=0.D0
  84. SIGEL(4)=SIGEL(1)
  85. IF(ITYP.LT.8) GO TO 205
  86. SIGEL(4)=0.D0
  87. SIGEL(1)=XI1LIM
  88. 205 CONTINUE
  89. IF(IIMPI.EQ.15) WRITE(IOIMP,77389) (SIGEL(I),I=1,IBOU)
  90. 77389 FORMAT(1X,'SOMDRU - SIGEL '/(6(1X,1PE12.5)))
  91. *
  92. * ON CALCULE ALORS DELTA SIGMA PLASTIQUE
  93. *
  94. DO 209 IB=1,IBOU
  95. DSIGP(IB)=STOT(IB)-SIGEL(IB)
  96. 209 CONTINUE
  97. *
  98. * ON CALCULE DELTA EPSILON PLASTIQUE PUIS DELTA EPSILON *
  99. *
  100. CALL EPSIG(DSIGP,EPSPLA,JFOUR,YUNG,XNU,ITYP,ORMAT,XMAT)
  101. DEPS=VONEPS(EPSPLA,ITYP,ALFAH,COVNMS)
  102. EPST=EPSTAR+DEPS
  103. IF(IIMPI.EQ.15) WRITE(IOIMP,77390) EPSTAR,DEPS,EPST
  104. 77390 FORMAT(1X,'EPSTAR=',1PE12.5,2X,'DEPS=',1PE12.5,2X,'EPST=',
  105. . 1PE12.5/)
  106. CALL CKRIT(IMAPLA,SIGEL,ITYP,XMAT,ALFAH,COVNMS,XINV,SI)
  107. RETURN
  108. *
  109. * 2-EME CAS ECROUISSAGE
  110. *
  111. 300 CONTINUE
  112. IF(ITYP.NE.1.AND.ITYP.NE.5.AND.ITYP.NE.6) THEN
  113. KERRE=51
  114. RETURN
  115. ENDIF
  116. *
  117. * CAS DES CONTRAINTES PLANES
  118. *
  119. IF(ITYP.EQ.6) THEN
  120. IF((PENTE*XMATKL.GE.0.D0).OR.(XMAT(9).EQ.0.D0)) THEN
  121. KERRE=52
  122. RETURN
  123. ENDIF
  124. DEPS= -XI1LIM/XMAT(9)
  125. EPST= EPSTAR+DEPS
  126. IF(IIMPI.EQ.15) WRITE(IOIMP,77389) (SIGEL(I),I=1,IBOU)
  127. IF(IIMPI.EQ.15) WRITE(IOIMP,77390) EPSTAR,DEPS,EPST
  128. CALL CKRIT(IMAPLA,SIGEL,ITYP,XMAT,ALFAH,COVNMS,XINV,SI)
  129. LAPOIN=1
  130. RETURN
  131. ENDIF
  132. *
  133. * CAS DU MASSIF
  134. *
  135. IF(ITYP.EQ.1.OR.ITYP.EQ.5) THEN
  136. IF(XMATE.EQ.0.D0) THEN
  137. KERRE=52
  138. RETURN
  139. ENDIF
  140. FAC1=(1.D0-2.D0*XNU)/(3.D0*XMATE*YUNG)
  141. FAC2=FAC1*XI1LIM
  142. FAC1=FAC1*XMAT(9)
  143. UNSE = 1.D0/YUNG
  144. UNSE2= UNSE*2.D0*(1.D0+XNU)
  145. W1(1)= UNSE*(STOT(1)-XNU*(STOT(2)+STOT(3)))-FAC2
  146. W1(2)= UNSE*(STOT(2)-XNU*(STOT(1)+STOT(3)))-FAC2
  147. W1(3)= UNSE*(STOT(3)-XNU*(STOT(1)+STOT(2)))-FAC2
  148. W1(4)= UNSE2*STOT(4)
  149. W1(5)= UNSE2*STOT(5)
  150. W1(6)= UNSE2*STOT(6)
  151. AA = 1.D0-2.D0*FAC1*FAC1
  152. BB = 2.D0*FAC1*(W1(1)+W1(2)+W1(3))/3.D0
  153. CC = (VONEPS(W1,ITYP,ALFAH,COVNMS))**2
  154. IF(AA.EQ.0.D0) THEN
  155. IF(BB.EQ.0.D0) THEN
  156. KERRE=53
  157. RETURN
  158. ENDIF
  159. DEPS= CC/2.D0/BB
  160. IF(DEPS.LT.0D0) THEN
  161. KERRE=53
  162. RETURN
  163. ENDIF
  164. ELSE
  165. DISCR=BB**2+AA*CC
  166. IF(DISCR.LT.0D0) THEN
  167. KERRE=53
  168. RETURN
  169. ENDIF
  170. DISCR=SQRT(DISCR)
  171. DEPS1 = (-BB+DISCR)/AA
  172. DEPS2 = (-BB-DISCR)/AA
  173. DEPS=MAX(DEPS1,DEPS2)
  174. IF(DEPS.LT.0D0) THEN
  175. KERRE=53
  176. RETURN
  177. ENDIF
  178. ENDIF
  179. SNN = XI1LIM+XMAT(9)*DEPS
  180. * AM 24/5/93 TEST SUR SN
  181. IF(SNN .LT. 0.D0) THEN
  182. SNN=0.D0
  183. DEPS= -XI1LIM/XMAT(9)
  184. ENDIF
  185. DO 302 IB=1,3
  186. SIGEL(IB)=SNN/3.D0
  187. 302 CONTINUE
  188. EPST=EPSTAR+DEPS
  189. IF(IIMPI.EQ.15) WRITE(IOIMP,77389) (SIGEL(I),I=1,IBOU)
  190. IF(IIMPI.EQ.15) WRITE(IOIMP,77390) EPSTAR,DEPS,EPST
  191. CALL CKRIT(IMAPLA,SIGEL,ITYP,XMAT,ALFAH,COVNMS,XINV,SI)
  192. RETURN
  193. ENDIF
  194. END
  195.  
  196.  
  197.  
  198.  
  199.  

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