Télécharger incre1.eso

Retour à la liste

Numérotation des lignes :

  1. C INCRE1 SOURCE PV 15/04/13 21:15:08 8474
  2. SUBROUTINE INCRE1(DT,SIG,EPSV,VAR,EPSVPT,VARPT,XMAT,NSTRS0,
  3. & NVARI,INPLAS,NCOMAT,MFR,PHI1,PHITAU,TTAU)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. DIMENSION SIG(*),EPSV(*),VAR(*),XMAT(*),EPSVPT(*),VARPT(*)
  7. DIMENSION SS(6),EPLU(6),EMIN(6),EPSCRP(6)
  8. DIMENSION SIG0(6),EPSV0(6),EPS0(6),EPS0V(6)
  9. C _________________________________________________________________
  10. C
  11. C THIS ROUTINE CALCULATES INCREMENTAL STRAINS & INTERNAL VARIABLES
  12. C _________________________________________________________________
  13. C
  14. C STEP-1 : EXTRACT EPLUS , EMINUS & EPSCRP
  15. C ----------------------------------------
  16. IF (MFR.EQ.5) THEN
  17. NSTRS=6
  18. SIG0(1)=SIG(1)
  19. SIG0(2)=SIG(2)
  20. SIG0(3)=0.D0
  21. SIG0(4)=SIG(3)
  22. SIG0(5)=SIG(4)
  23. SIG0(6)=SIG(5)
  24. EPSV0(1)=EPSV(1)
  25. EPSV0(2)=EPSV(2)
  26. EPSV0(3)=0.D0
  27. EPSV0(4)=EPSV(3)
  28. EPSV0(5)=EPSV(4)
  29. EPSV0(6)=EPSV(5)
  30. ELSE
  31. NSTRS=NSTRS0
  32. DO 10 I=1,NSTRS
  33. SIG0(I)=SIG(I)
  34. EPSV0(I)=EPSV(I)
  35. 10 CONTINUE
  36. ENDIF
  37. C
  38. IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN
  39. DO 20 I=1,NSTRS
  40. EPLU(I)=VAR(I)
  41. EMIN(I)=VAR(NSTRS+I)
  42. 20 CONTINUE
  43. EEFF =VAR(2*NSTRS+1)
  44. LL =nint(VAR(2*NSTRS+3))
  45. ENDIF
  46. IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN
  47. DO 30 I=1,NSTRS
  48. EPS0(I)=0.0D0
  49. EPSCRP(I)=EPSV0(I)
  50. 30 CONTINUE
  51. ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR.
  52. & INPLAS.EQ.61) THEN
  53. DO 40 I=1,NSTRS
  54. EPS0(I)=0.0D0
  55. EPSCRP(I)=VAR(2*NSTRS+4+I)
  56. 40 CONTINUE
  57. ENDIF
  58. DO 50 I=1,NVARI
  59. VARPT(I)=0.0D0
  60. 50 CONTINUE
  61. C_____________________________________________________________________
  62. C
  63. C STEP-2 : COMPUTATION OF SEQUV
  64. C ------------------------------
  65. SIGM=0.333333333333333D0*(SIG0(1)+SIG0(2)+SIG0(3))
  66. DO 60 I=1,NSTRS
  67. A=0.0D0
  68. IF(I.LE.3) A=1.0D0
  69. SS(I)=SIG0(I)-A*SIGM
  70. 60 CONTINUE
  71. SEQUV =PROCON(SS,SS,NSTRS)
  72. SEQUV =SQRT(1.5D0*SEQUV)
  73. * pour eviter l'overflow
  74. sequv=min(1d65,sequv)
  75. C_____________________________________________________________________
  76. C gatt :
  77. IF (INPLAS.EQ.107) THEN
  78. CALL GATT(DT,SEQUV,SIGM,SS,EPSV,VAR,XMAT,NSTRS,PHI1,PHITAU,
  79. & TTAU,EPS0,VARPT)
  80. GOTO 1000
  81. ENDIF
  82. C gatt.
  83. C_____________________________________________________________________
  84. C
  85. C STEP-3 : UPDATING INTERNAL VARIABLES
  86. C ------------------------------------
  87. IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN
  88. CALL UPVAR1(SIG0,EPSCRP,EPLU,EMIN,EEFF,EPSH,LL,NSTRS)
  89. DO 90 I=1,NSTRS
  90. VARPT( I)=EPLU(I)
  91. VARPT(NSTRS+I)=EMIN(I)
  92. 90 CONTINUE
  93. VARPT(2*NSTRS+1)=EEFF
  94. VARPT(2*NSTRS+2)=EPSH
  95. VARPT(2*NSTRS+3)=LL
  96. ENDIF
  97. C_____________________________________________________________________
  98. C
  99. C STEP-4 : COMPUTATION OF INELASTIC STRAIN RATE
  100. C ---------------------------------------------
  101. IF(SEQUV.LE.1.D-10) GO TO 1000
  102. IF(INPLAS.EQ.19) THEN
  103. CALL NORTON(SEQUV,EPSH,DT,XMAT(6),XMAT(7),XMAT(8),DECT)
  104. VARPT(2*NSTRS+4)=DECT
  105. ELSE IF(INPLAS.EQ.21) THEN
  106. DECT=XMAT(6)+XMAT(7)*(SEQUV**XMAT(8))+
  107. . XMAT(9)*(SEQUV**XMAT(10)) +
  108. . XMAT(11)*(SEQUV**XMAT(12))
  109. VARPT(2*NSTRS+4)=DECT
  110. ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.
  111. . INPLAS.EQ.23.OR.INPLAS.EQ.61) THEN
  112. CALL SOLUTN(INPLAS,SEQUV,EPSH,XMAT,DT,TIME)
  113. CALL EQUATN(INPLAS,SEQUV,TIME,DT,XMAT,DECP,DECS)
  114. DECT=DECP+DECS
  115. CONS=1.5D0*DECP/SEQUV
  116. DO 100 I=1,NSTRS
  117. VARPT(2*NSTRS+4+I)=CONS*SS(I)
  118. 100 CONTINUE
  119. VARPT(2*NSTRS+4)=DECT
  120. ELSE IF(INPLAS.EQ.24) THEN
  121. CALL LEMAIT(SEQUV,VAR(1),DX,DT,XMAT,DECT)
  122. VARPT(1)=DX
  123. VARPT(2)=DECT
  124. ENDIF
  125. CONS=1.5D0*DECT/SEQUV
  126. DO 110 I=1,NSTRS
  127. EPS0(I)=CONS*SS(I)
  128. 110 CONTINUE
  129. C
  130. C_______________________________________________________________________
  131. 1000 CONTINUE
  132. C
  133. IF (MFR.EQ.5) THEN
  134. EPSVPT(1)=EPS0(1)
  135. EPSVPT(2)=EPS0(2)
  136. EPSVPT(3)=EPS0(4)
  137. EPSVPT(4)=EPS0(5)
  138. EPSVPT(5)=EPS0(6)
  139. ELSE
  140. DO 120 I=1,NSTRS
  141. EPSVPT(I)=EPS0(I)
  142. 120 CONTINUE
  143. ENDIF
  144. C
  145. RETURN
  146. END
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  

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