编辑代码

SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,TIME,DTIME,
CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,
NDI,nshr,coord,jmac,jmtyp,matlayo,laccflg)

INCLUDE 'ABA_PARAM.INC'

CHARACTER*80 CMNAME,ORNAME
CHARACTER*3  FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),TIME(2),coord(*),jmac(*),jmtyp(*)
DIMENSION ARRAY(15),JARRAY(15)

TWO STATEMENTS BELOW ARE USED TO TEST
PROGRAM SAMPLE
DIMENSION STATEV(4),ARRAY(6),FIELD(4)

STRENGTH PARAMETERS
XT=3071
  XC=1747
YT=88
YC=271
SS=143

INITIALLZE FAILURE FLAGS EROM STATEV.

THE STATEMENT BELOW IS USED TO TEST
     DATA STATEV/6*0.0/

    eMT = STATEV(1)
  eMC = STATEV(2)
  eFT = STATEV(3)
    eFC = STATEV(4)   

GET STRESSES FROM PREVIOUS INCREMENT
    CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,jrcd,jmac,jmtyp,matlayo,laccflg)

THE STATEMENT BELOW IS USED TO TEST    
  DATA STATEV/6*40.0/

    S11 = ARRAY(1)
    S22 = ARRAY(2)
  S12 = ARRAY(4)  

CALCULATE COEFFICENT OF HASHIN-YE
  F3 =(S11/XT)**2+(S12/SS)**2
  F4 =(S11/XT)**2
  F1 =(S22/YT)**2+(S12/SS)**2
  F2 =(S22/(2*SS))**2+(S12/SS)**2+((YC/(2*SS))**2-1)*(S22/YC)

MATRIX TENSILE FAILURE    ## 1
    IF (eMT .LT. 1.D0) THEN
     IF (S22 .GT. 0.D0) THEN
        eMT=F1
        STATEV(1) = eMT
     ENDIF
  ENDIF    

MATRIX TENSILE FAILURE    ## 2
    IF (eMC .LT. 1.D0) THEN
     IF (S22 .LT. 0.D0) THEN
        eMC=F2
        STATEV(2) = eMC
     ENDIF
  ENDIF   

MATRIX TENSILE FAILURE    ## 3
    IF (eFT .LT. 1.D0) THEN
     IF (S11 .GT. 0.D0) THEN
        eFT=F3
        STATEV(3) = eFT
     ENDIF
  ENDIF   

MATRIX TENSILE FAILURE    ## 4
    IF (eFC .LT. 1.D0) THEN
     IF (S11 .LT. 0.D0) THEN
        eFC=F4
        STATEV(4) = eFC
     ENDIF
  ENDIF   



      STATE TRANSITION DIAGRAM

      FV1: MATRIX TENSILE FAILURE