C INCRB2 SOURCE CHAT 05/01/13 00:35:03 5004 C INCRB2 SOURCE AC2 96/01/19 21:29:05 1995 SUBROUTINE INCRB2(SIG,VAR,EPSVPT,VARPT,XMAT,NSTRS0, & MFR,NVARI,NCOMAT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) REAL*8 EAFSKPN1,BP,EMBP,PPRIMDP REAL*8 AFSKPN1,T1,T2,T3,DP,FSKPN,FSKPN1,J2SMX,RR,FSURK DIMENSION SIG(*),VAR(*),EPSVPT(*),VARPT(*),XMAT(*) DIMENSION XXX(6),AN(6),ANS(6),SMOINX(6) DIMENSION SIG0(6),DEPS0(6),SIGX1(6),SIGX2(6) PARAMETER (AMAX = 1.0D20 , AMIN = 1.D-10) DETIER = 2.0D0/3.0D0 ROOT = SQRT(DETIER) C-------------------------------------------------------------------| C C XMAT(1) : YOUN C XMAT(2) : NU C XMAT(3) : RHO C XMAT(4) : ALPH C XMAT(5) : ALF C XMAT(6) : N C XMAT(7) : KK C XMAT(8) : K0 C XMAT(9) : CL1 C XMAT(10) : DNL1 C XMAT(11) : PHI C XMAT(12) : CL2 C XMAT(13) : DNL2 C XMAT(14) : B C XMAT(15) : GDM1 C XMAT(16) : PTM1 C XMAT(17) : RMAX C XMAT(18) : BR C C SIGXi : Xi ( Xi = (2/3) CLi ALPHAi) C ALPHAi : variable interne du type AiXX.... C C-------------------------------------------------------------------| C******* CALCUL DE X1 ET X2 | C-------------------------------------------------------------------I NSTRS = NSTRS0 DO 12 I = 1,NSTRS SIGX1(I) = DETIER * XMAT(9) * VAR(I) SIGX2(I) = DETIER * XMAT(12) * VAR(NSTRS+I) 12 CONTINUE C-------------------------------------------------------------------| C******* EVALUATION OF J2 SIGMA - X | C-------------------------------------------------------------------I IF (MFR.EQ.5) THEN NSTRS = 6 SIG0(1) = SIG(1) SIG0(2) = SIG(2) SIG0(3) = 0.D0 SIG0(4) = SIG(3) SIG0(5) = SIG(4) SIG0(6) = SIG(5) ELSE NSTRS = NSTRS0 DO 10 I = 1,NSTRS SIG0(I) = SIG(I) 10 CONTINUE ENDIF C TRACE = (SIG0(1)+SIG0(2)+SIG0(3))/3.0D0 DO 70 I = 1,NSTRS IF (I.LE.3) THEN SMOINX(I) = SIG0(I) - TRACE - SIGX1(I) - SIGX2(I) ELSE SMOINX(I) = SIG0(I) - SIGX1(I) - SIGX2(I) ENDIF 70 CONTINUE J2SMX = PROCON (SMOINX,SMOINX,NSTRS) J2SMX = SQRT(1.5D0*J2SMX) C--------------------------------------------------------------------| C******* CALCUL OF SIGV/K | C -------------------------------------------------------------------I RR=XMAT(17)-((XMAT(17)-XMAT(7))*DEXP(-XMAT(18)*VAR(3*NSTRS+1))) FSURK = (J2SMX-RR) / XMAT(8) C--------------------------------------------------------------------| C******* CALCULATION OF EFFECTIVE INELASTIC STRAIN INCREMENT (P) | C -------------------------------------------------------------------I IF (FSURK.GT.0.0D0) THEN FSKPN = XPUISS(FSURK,XMAT(6) ,AMAX) FSKPN1 = FSURK * FSKPN ELSE FSKPN = 0.0D0 FSKPN1 = 0.0D0 ENDIF C AFSKPN1 = XMAT(5) * FSKPN1 EAFSKPN1 = 1.0D20 IF(DABS(AFSKPN1).LT.40.0D0) EAFSKPN1 = DEXP(AFSKPN1) DP = FSKPN * EAFSKPN1 VARPT(3*NSTRS+1) = DP C---------------------------------------------------------------------| C******* CALCULATION OF INELASTIC STRAIN INCREMENTS (EPSVPT) | C---------------------------------------------------------------------I DO 71 I = 1,NSTRS,1 IF (DP.EQ.0.0) THEN DEPS0(I) = 0.0D0 VARPT(2*NSTRS+I) = 0.0D0 ELSE XXX(I) = 1.5D0 * SMOINX(I) / J2SMX DEPS0(I) = XXX(I) * DP VARPT(2*NSTRS+I) = DEPS0(I) ENDIF 71 CONTINUE C P = VAR(3*NSTRS+1) C----------------------------------------------------------------| C ******* CALCULATION OF PI(P) | C----------------------------------------------------------------I BP = XMAT(14) * P EMBP = DEXP(-BP) PPRIMDP = (XMAT(11) + (1.0D0-XMAT(11)) * EMBP) * DP C----------------------------------------------------------------| C******* CALCULATION OF XII | C----------------------------------------------------------------I X1II = SQRT(1.5D0*PROCON(SIGX1,SIGX1,NSTRS)) X1IISM = 0.0D0 IF(XMAT(15).NE.0.0D0) X1IISM = X1II/XMAT(15) C COX1 = 0.0D0 IF((X1II.GT.0.0D0).AND.(X1IISM.GT.0.0D0)) . COX1 = (X1IISM**XMAT(16)) / X1II C ----------------------------------------------------------------| C******* CALCULATION OF DX1 AND DX2 | C-----------------------------------------------------------------I DO 74 I = 1,NSTRS T1 = DEPS0(I) T2 = XMAT(10) * PPRIMDP * VAR(I) T3 = 1.5D0 * COX1 * SIGX1(I) VARPT(I) = T1 - T2 - T3 T2 = XMAT(13) * PPRIMDP * VAR(NSTRS+I) VARPT(NSTRS+I) = T1 - T2 74 CONTINUE C IF (MFR.EQ.5) THEN EPSVPT(1)=DEPS0(1) EPSVPT(2)=DEPS0(2) EPSVPT(3)=DEPS0(4) EPSVPT(4)=DEPS0(5) EPSVPT(5)=DEPS0(6) ELSE DO 11 I = 1,NSTRS EPSVPT(I) = DEPS0(I) 11 CONTINUE ENDIF c RETURN END