incre1
C INCRE1 SOURCE PV 15/04/13 21:15:08 8474 & NVARI,INPLAS,NCOMAT,MFR,PHI1,PHITAU,TTAU) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) DIMENSION SIG(*),EPSV(*),VAR(*),XMAT(*),EPSVPT(*),VARPT(*) DIMENSION SS(6),EPLU(6),EMIN(6),EPSCRP(6) DIMENSION SIG0(6),EPSV0(6),EPS0(6),EPS0V(6) C _________________________________________________________________ C C THIS ROUTINE CALCULATES INCREMENTAL STRAINS & INTERNAL VARIABLES C _________________________________________________________________ C C STEP-1 : EXTRACT EPLUS , EMINUS & EPSCRP C ---------------------------------------- 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) EPSV0(1)=EPSV(1) EPSV0(2)=EPSV(2) EPSV0(3)=0.D0 EPSV0(4)=EPSV(3) EPSV0(5)=EPSV(4) EPSV0(6)=EPSV(5) ELSE NSTRS=NSTRS0 DO 10 I=1,NSTRS SIG0(I)=SIG(I) EPSV0(I)=EPSV(I) 10 CONTINUE ENDIF C IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN DO 20 I=1,NSTRS EPLU(I)=VAR(I) EMIN(I)=VAR(NSTRS+I) 20 CONTINUE EEFF =VAR(2*NSTRS+1) LL =nint(VAR(2*NSTRS+3)) ENDIF IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN DO 30 I=1,NSTRS EPS0(I)=0.0D0 EPSCRP(I)=EPSV0(I) 30 CONTINUE ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR. & INPLAS.EQ.61) THEN DO 40 I=1,NSTRS EPS0(I)=0.0D0 EPSCRP(I)=VAR(2*NSTRS+4+I) 40 CONTINUE ENDIF DO 50 I=1,NVARI VARPT(I)=0.0D0 50 CONTINUE C_____________________________________________________________________ C C STEP-2 : COMPUTATION OF SEQUV C ------------------------------ SIGM=0.333333333333333D0*(SIG0(1)+SIG0(2)+SIG0(3)) DO 60 I=1,NSTRS A=0.0D0 IF(I.LE.3) A=1.0D0 SS(I)=SIG0(I)-A*SIGM 60 CONTINUE SEQUV =SQRT(1.5D0*SEQUV) * pour eviter l'overflow sequv=min(1d65,sequv) C_____________________________________________________________________ C gatt : IF (INPLAS.EQ.107) THEN & TTAU,EPS0,VARPT) GOTO 1000 ENDIF C gatt. C_____________________________________________________________________ C C STEP-3 : UPDATING INTERNAL VARIABLES C ------------------------------------ IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN DO 90 I=1,NSTRS VARPT( I)=EPLU(I) VARPT(NSTRS+I)=EMIN(I) 90 CONTINUE VARPT(2*NSTRS+1)=EEFF VARPT(2*NSTRS+2)=EPSH VARPT(2*NSTRS+3)=LL ENDIF C_____________________________________________________________________ C C STEP-4 : COMPUTATION OF INELASTIC STRAIN RATE C --------------------------------------------- IF(SEQUV.LE.1.D-10) GO TO 1000 IF(INPLAS.EQ.19) THEN VARPT(2*NSTRS+4)=DECT ELSE IF(INPLAS.EQ.21) THEN DECT=XMAT(6)+XMAT(7)*(SEQUV**XMAT(8))+ . XMAT(9)*(SEQUV**XMAT(10)) + . XMAT(11)*(SEQUV**XMAT(12)) VARPT(2*NSTRS+4)=DECT ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR. . INPLAS.EQ.23.OR.INPLAS.EQ.61) THEN DECT=DECP+DECS CONS=1.5D0*DECP/SEQUV DO 100 I=1,NSTRS VARPT(2*NSTRS+4+I)=CONS*SS(I) 100 CONTINUE VARPT(2*NSTRS+4)=DECT ELSE IF(INPLAS.EQ.24) THEN VARPT(1)=DX VARPT(2)=DECT ENDIF CONS=1.5D0*DECT/SEQUV DO 110 I=1,NSTRS EPS0(I)=CONS*SS(I) 110 CONTINUE C C_______________________________________________________________________ 1000 CONTINUE C IF (MFR.EQ.5) THEN EPSVPT(1)=EPS0(1) EPSVPT(2)=EPS0(2) EPSVPT(3)=EPS0(4) EPSVPT(4)=EPS0(5) EPSVPT(5)=EPS0(6) ELSE DO 120 I=1,NSTRS EPSVPT(I)=EPS0(I) 120 CONTINUE ENDIF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales