Télécharger incre2.eso

Retour à la liste

Numérotation des lignes :

incre2
  1. C INCRE2 SOURCE PASCAL 19/01/31 21:15:19 10094
  2. SUBROUTINE INCRE2(SIG,VAR,EPSVPT,VARPT,XMAT,XMAT0,NSTRS0,
  3. & MFR,NVARI,NCOMAT,VALMAT,VALMA0,DT0)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. DIMENSION SIG(*),VAR(*),EPSVPT(*),VARPT(*)
  7. DIMENSION XMAT(*),XMAT0(*),VALMAT(*),VALMA0(*)
  8. DIMENSION XX(6),XT1(6),XT2(6),AN(6),ANS(6),YY(6)
  9. DIMENSION SIG0(6),EPS0(6)
  10. LOGICAL IDT0
  11. PARAMETER (AMAX = 1.0D20 , AMIN = 1.D-10)
  12.  
  13. IDT0 = ABS(DT0).GT.0.D0
  14. DETIER = 2.0D0/3.0D0
  15. ROOT = SQRT(DETIER)
  16. C-------------------------------------------------------------------|
  17. C******* EVALUATION OF J2 SIGMA - X |
  18. C-------------------------------------------------------------------I
  19. IF (MFR.EQ.5) THEN
  20. NSTRS=6
  21. SIG0(1)=SIG(1)
  22. SIG0(2)=SIG(2)
  23. SIG0(3)=0.D0
  24. SIG0(4)=SIG(3)
  25. SIG0(5)=SIG(4)
  26. SIG0(6)=SIG(5)
  27. ELSE
  28. NSTRS=NSTRS0
  29. DO 10 I=1,NSTRS
  30. SIG0(I)=SIG(I)
  31. 10 CONTINUE
  32. ENDIF
  33. TRACE =(SIG0(1)+SIG0(2)+SIG0(3))/3.0D0
  34. DO 70 I=1,NSTRS
  35. A = 0.0D0
  36. IF (I.LE.3) A=1.0D0
  37. XX(I) = SIG0(I)-A*TRACE - VAR(I)-VAR(NSTRS+I)
  38. 70 CONTINUE
  39. AJ2 = PROCON (XX,XX,NSTRS)
  40. AJ2 = SQRT(1.5D0*AJ2)
  41. C--------------------------------------------------------------------|
  42. C******* CALCUL OF SIGV/K |
  43. C -------------------------------------------------------------------I
  44. RR = VAR (4*NSTRS+2)
  45. RS = XMAT(10)*RR
  46. SK = (AJ2 - RS-XMAT(7))/( XMAT(8) + XMAT(9)*RR )
  47. C--------------------------------------------------------------------|
  48. C******* CALCULATION OF EFFECTIVE INELASTIC STRAIN INCREMENT (P) |
  49. C -------------------------------------------------------------------I
  50. IF (SK.GT.0.0D0) THEN
  51. PPT1= XPUISS(SK,XMAT(6) ,AMAX)
  52. PPT2= XPUISS(SK,XMAT(6)+1.D0,AMAX)
  53. ELSE
  54. PPT1= 0.0D0
  55. PPT2= 0.0D0
  56. ENDIF
  57. T1 = XMAT(5)*PPT2
  58. PPT2=1.0D20
  59. IF(ABS(T1).LT.40.0D0) PPT2= EXP(T1)
  60. PPT = PPT1 * PPT2
  61. VARPT(4*NSTRS+1) = PPT
  62. C---------------------------------------------------------------------|
  63. C******* CALCULATION OF INELASTIC STRAIN INCREMENTS (EPSVPT) |
  64. C---------------------------------------------------------------------I
  65. DO 71 I=1,NSTRS,1
  66. IF (PPT.EQ.0.0) THEN
  67. EPS0 (I) = 0.0D0
  68. XX (I) = 0.0D0
  69. VARPT(3*NSTRS+I)= 0.0D0
  70. ELSE
  71. XX(I) = 1.5D0*XX(I)/AJ2
  72. EPS0 (I) = XX(I)*PPT
  73. VARPT(3*NSTRS+I)=EPS0 (I)
  74. ENDIF
  75. 71 CONTINUE
  76. C
  77. P = VAR(4*NSTRS+1)
  78. C----------------------------------------------------------------|
  79. C ******* CALCULATION OF PI(P) |
  80. C----------------------------------------------------------------I
  81. T1 = XMAT(16)*P
  82. T2 = EXP(-T1)
  83. PIP= XMAT(13)+(1.0D0-XMAT(13)) * T2
  84. C----------------------------------------------------------------|
  85. C******* CALCULATION OF XII |
  86. C----------------------------------------------------------------I
  87. DO 72 I=1,NSTRS
  88. XT1(I)=VAR(I)
  89. XT2(I)=VAR(I+NSTRS)
  90. 72 CONTINUE
  91. X1II = 0.0D0
  92. X2II = 0.0D0
  93. IF(XMAT(17).NE.0.0D0)
  94. . X1II = SQRT(1.5D0*PROCON(XT1,XT1,NSTRS))/XMAT(17)
  95. IF(XMAT(18).NE.0.0D0)
  96. . X2II = SQRT(1.5D0*PROCON(XT2,XT2,NSTRS))/XMAT(18)
  97. COX1 = 0.0D0
  98. COX2 = 0.0D0
  99. IF(X1II.GT.0.0D0) COX1 = X1II**(XMAT(19)-1.0D0)
  100. IF(X2II.GT.0.0D0) COX2 = X2II**(XMAT(20)-1.0D0)
  101. C ----------------------------------------------------------------|
  102. C******* CALCULATION OF DX1 AND DX2 |
  103. C-----------------------------------------------------------------I
  104. DO 73 I=1,NSTRS
  105. VARPT( I)=0.0D0
  106. 73 VARPT(NSTRS+I)=0.0D0
  107. DO 74 I=1,NSTRS
  108. T1 = DETIER * XMAT(11) * XMAT(12) * EPS0(I)
  109. DXMAT11 = XMAT(11) - XMAT0(11)
  110. XXMAT11 = XMAT(11) + XMAT0(11)
  111. IF (ABS(DXMAT11).GT.0.D0.AND.ABS(XXMAT11).GT.0.D0.AND.IDT0) THEN
  112. T1=T1+2.D0*VAR(I)*DXMAT11/XXMAT11/DT0
  113. ENDIF
  114. DXMAT12 = XMAT(12) - XMAT0(12)
  115. XXMAT12 = XMAT(12) + XMAT0(12)
  116. IF (ABS(DXMAT12).GT.0.D0.AND.ABS(XXMAT12).GT.0.D0.AND.IDT0) THEN
  117. T1=T1+2.D0*VAR(I)*DXMAT12/XXMAT12/DT0
  118. ENDIF
  119. T2 = XMAT(11) * PIP * XT1(I) * PPT
  120. T3 = COX1 * XT1(I)
  121. VARPT(I)= T1 - T2 -T3
  122. T1 = DETIER * XMAT(14) * XMAT(15) * EPS0(I)
  123. T2 = XMAT(14) * PIP * XT2(I) * PPT
  124. T3 = COX2 * XT2(I)
  125. 74 VARPT(NSTRS+I)= T1 - T2 - T3
  126. C-----------------------------------------------------------------|
  127. C******* CALCULATION OF DR |
  128. C-----------------------------------------------------------------I
  129. T1 = 1.0D0-(1.0D0-VAR(4*NSTRS+3)/XMAT(25))**2
  130. QR = VAR(4*NSTRS+3)-XMAT(26)*T1
  131. CO1= QR-VAR(4*NSTRS+2)
  132. CO = ABS(CO1)
  133. IF(CO.GT.0.0D0) CO = CO**(XMAT(22)-1.0D0)
  134. T1= XMAT(16)*(VAR(4*NSTRS+3)-VAR(4*NSTRS+2))*PPT
  135. T2= XMAT(21)*CO*CO1
  136. DR= T1 + T2
  137. VARPT(4*NSTRS+2)=DR
  138. C----------------------------------------------------------------|
  139. C******* CALCULATION OF PROD (N X N*) |
  140. C----------------------------------------------------------------I
  141. DO 75 I=1,NSTRS
  142. * A=1.0D0
  143. * IF(I.GT.3) A = 2.0D0
  144. YY(I)=VAR(3*NSTRS+I) - VAR(2*NSTRS+I)
  145. 75 CONTINUE
  146. AJ2= SQRT(1.5D0*PROCON(YY,YY,NSTRS))
  147. IF(AJ2.LT.AMIN) THEN
  148. IF (AJ2.EQ.0.D0) AJ2=AMIN
  149. AJ20=AJ2*1.D20
  150. DO 15 I=1,NSTRS
  151. YY(I)=YY(I)*1.D20
  152. 15 CONTINUE
  153. ELSE
  154. AJ20=AJ2
  155. ENDIF
  156. * IF (AJ2.LT.AMIN) AJ20=AMIN
  157. DO 76 I= 1,NSTRS
  158. ANS(I) = SQRT(1.5D0)*YY(I)/AJ20
  159. AN (I) = ROOT*XX(I)
  160. 76 CONTINUE
  161. FF = DETIER*AJ2-VAR(4*NSTRS+4)
  162. HF=0.0D0
  163. IF(FF.GT.0.0D0) HF=1.0D0
  164. ANAN1=PROCON(AN,ANS,NSTRS)
  165. ANANS=0.0D0
  166. IF(ANAN1.GT.0.0) ANANS=ANAN1
  167. C----------------------------------------------------------------|
  168. C******* CALCULATION OF DQ |
  169. C----------------------------------------------------------------I
  170. DQ = XMAT(23)*HF*ANANS*PPT
  171. VARPT(4*NSTRS+4)=DQ
  172. C----------------------------------------------------------------|
  173. C******* CALCULATION OF DGETA |
  174. C----------------------------------------------------------------I
  175. T1 = SQRT(1.5D0)*(1.0D0-XMAT(23))*HF*ANANS*PPT
  176. DO 78 I=1,NSTRS
  177. VARPT(2*NSTRS+I)= T1*ANS(I)
  178. 78 CONTINUE
  179. C----------------------------------------------------------------|
  180. C******* CALCULATION OF DQQ |
  181. C----------------------------------------------------------------I
  182. VARPT(4*NSTRS+3)=2.0D0*XMAT(24)*(XMAT(25)-VAR(4*NSTRS+3))*DQ
  183. C
  184. C Dependance de Q en temeprature (QT)
  185. DQT1 = VALMAT(28) - VALMA0(28)
  186. IF (ABS(DQT1).GT.0.D0.AND.IDT0) THEN
  187. VARPT(4*NSTRS+3)=VARPT(4*NSTRS+3)+DQT1/DT0
  188. ENDIF
  189. C
  190. IF (MFR.EQ.5) THEN
  191. EPSVPT(1)=EPS0(1)
  192. EPSVPT(2)=EPS0(2)
  193. EPSVPT(3)=EPS0(4)
  194. EPSVPT(4)=EPS0(5)
  195. EPSVPT(5)=EPS0(6)
  196. ELSE
  197. DO 11 I=1,NSTRS
  198. EPSVPT(I)=EPS0(I)
  199. 11 CONTINUE
  200. ENDIF
  201. C
  202. RETURN
  203. END
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  

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