经过进一步的完善后,子程序的计算结果跟一般程序的计算结果吻合得比较好。目前在三维实体元中应用效果良好。注意:外部数据文件的数据由其它拟合软件获得。 SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT, 1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER, 2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO, 3 LACCFLA) C
INCLUDE 'ABA_PARAM.INC' C
CHARACTER*80 CMNAME,ORNAME CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3), 1 T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*), 1 COORD(*) C
C Reading instantaneous thermal strain in direction 11(x axial) C Storing the thermal strain in state variable C
CALL GETVRM('THE',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA)
STATEV(1)= ARRAY(1)
C
C Reading instantaneous elastic x axial strain C Storing the thermal strain in state variable C NOTE: ARRAY(1)--X AXIAL C ARRAY(2)--Y AXIAL C ARRAY(3)--Z AXIAL C
CALL GETVRM('EE',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA)
STATEV(2)= ARRAY(1) C
CALL GETVRM('SDV',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA) STATEV(3)= ARRAY(3) STATEV(4)= ARRAY(4)
C
C Modifying Field variables to model development of Young’s C modulus with age. C
IF(TIME(2).GT.1) THEN FIELD(1)=TIME(2) ELSE
FIELD(1)=0 END IF RETURN END C
C
SUBROUTINE UEXTERNALDB(LOP,LRESTART,TIME,DTIME,KSTEP,KINC) C
INCLUDE 'ABA_PARAM.INC' C
DIMENSION TIME(2) CHARACTER*80 TITLE
C
COMMON/MYGIRD/GIRD_INI(4,10),GIRD_LAMDA(4) COMMON/MYSLAB/SLAB_INI(4,10),SLAB_LAMDA(4) C
C Abaqus uses the FORTRAN unit numbers outlined in the table below. Unless noted otherwise,
C you should not try to write to these FORTRAN units from user subroutines. C ForAbaqus/Standard, you should specify unit numbers 15–18 or unit numbers greater than 100
C
C Read the creep coefficients from external dababase at the beginning of computing. C
IF(LOP.EQ.0) THEN
OPEN(106,STATUS='OLD',FILE='D:\\ABAQUSWORK\\creep.in') READ(106, *)TITLE
READ(106, *)(GIRD_LAMDA(I),I=1,4) DO J=1,10
READ(106, *)(GIRD_INI(I,J),I=1,4) END DO C
READ(106, *)TITLE
READ(106, *)(SLAB_LAMDA(I),I=1,4) DO J=1,10
READ(106, *)(SLAB_INI(I,J),I=1,4) END DO CLOSE(106) C
c OPEN(107,FILE='D:\\ABAQUSWORK\\CREEP.OUP') c Write(107, 100)(SLAB_LAMDA(I),I=1,4) c DO J=1,10
c write(107, 100)(SLAB_INI(I,J),I=1,4) c END DO
c CLOSE(107)
c100 FORMAT(1X,4E16.7) END IF RETURN END C
SUBROUTINE UEXPAN(EXPAN,DEXPANDT,TEMP,TIME,DTIME,PREDEF, 1 DPRED,STATEV,CMNAME,NSTATV,NOEL) C
INCLUDE 'ABA_PARAM.INC' C
CHARACTER*80 CMNAME C
DIMENSION EXPAN(*),DEXPANDT(*),TEMP(2),TIME(2),PREDEF(*), 1 DPRED(*),STATEV(NSTATV),ARRAY(15) REAL CINI(4,10),T0(10),CLAMDA(4),AN(4) REAL CLOAD(4),EMOD(10)
c
COMMON/MYGIRD/GIRD_INI(4,10),GIRD_LAMDA(4) COMMON/MYSLAB/SLAB_INI(4,10),SLAB_LAMDA(4)
C
C SWITCH, II=1, CREEP; II=2, SHRINKAGE, II=3, CREEP+SHRANKAGE C KK=3
TGSH=7.0
TDSH=41.0
C
C===================== INTIAL VALUES ========================= C ******* FOR CREEP (USING 1STOPT) *********
C
C INITIAL FUNCTION IS Y=1.9*T0^(-0.118)*(T-T0)/(61-0.51*FC+T-T0) C
C EQUIVALENT FUNCTION (SOFTWARE OF 1STOPT) IS
C Y=C1*(1-EXP(-LAMDA1*(X-T)))+C2*(1-EXP(-LAMDA2*(X-T)))+ C C3*(1-EXP(-LAMDA3*(X-T)))+C4*(1-EXP(-LAMDA4*(X-T))); C
C WHERE T IS THE CALCULATING TIME, T0 IS THE LOADING TIME C THE FACTORS ARE LISTED AS FOLLOWING
C NOTE: FOR THE CREEP COMPLIANCE IS RELATIVE TO MODULUS OF ELASTIC, ALL THE
C COEFFICIENT OF KABIR WILL BE DIFFERENT ACCORDING TO VARYING MODULUS.
C LOADING TIME ARE 7,14,28,60,90,180,365,600,1000,3000(DAYS) C ------------------------------------------------------------------------------
C | A | 7 | 14 | 28 | 60 | 90 | 180 | 365 | 600 | 1000 | 3000 |
C | C1 |C(1,1)|C(1,2)|C(1,3)|C(1,4)|C(1,5)|C(1,6)|C(1,7)|C(1,8)|C(1,9)|C(1,10)| C | C2 |C(2,1)|C(2,2)|C(2,3)|C(2,4)|C(2,5)|C(2,6)|C(2,7)|C(2,8)|C(2,0)|C(2,10)| C | C3 |C(3,1)|C(3,2)|C(3,3)|C(3,4)|C(3,5)|C(3,6)|C(3,7)|C(3,8)|C(3,9)|C(3,10)| C | C4 |C(4,1)|C(4,2)|C(4,3)|C(4,4)|C(4,5)|C(4,6)|C(4,7)|C(4,8)|C(4,9)|C(4,10)| C ----------------------------------------------------------------------------- C CREEP ONLY FOR CONCRETE MATERIAL C
C LOADING AGE(DAYS)
T0=(/7,14,28,60,90,180,365,600,1000,3000/) C
IF(CMNAME.EQ.\ DO I=1,4
CLAMDA(I)=GIRD_LAMDA(I) END DO C
DO J=1,10 DO I=1,4
CINI(I,J)=GIRD_INI(I,J)
END DO
END DO C MODULUS OF ELASTIC AT T0'S AGE
EMOD=(/25463, 28486, 30467, 31708, 32099, * 32506, 32717, 32799, 32851, 32902/) END IF
C
IF(CMNAME.EQ.\ DO I=1,4
CLAMDA(I)=SLAB_LAMDA(I) END DO C
DO J=1,10
DO I=1,4
CINI(I,J)=SLAB_INI(I,J)
END DO
END DO C MODULUS OF ELASTIC AT T0'S AGE EMOD=(/23818, 26647, 28499, 29660, 30026, * 30406, 30604, 30681, 30729, 30777/) END IF C
C ======== FOR SHRINKAGE =======
C TGSH-- TIME OF SHRINKAGE CALCULATION FOR \C TDSH-- TIME OF SHRINKAGE CALCULATION FOR \
C 480E-6-- ULTIMATE SHRINKAGE STRAIN IN AASHRO 2007(SI)
C FC --SPECIFIED COMPREI\\SSIVE STRENGTH OF CONCRETE AT TIME OF C PRESTRESSING FOR PRESTRESSIONED MEMBERS AND AT TIME OF C INITIAL LOADING FOR NONPRESTRESSIONED MEMBERS, fci'IN AASHTO(2007)
C STANDARD VALUE IS 28MPa
C CKF --FACTOR FOR THE EFFECT OF CONCRETE STRENGTH
C CKTD--TIME DEPENDENT(DEVELOPMENT) FACTOR (THE FIRST TWO TURMS) C RHSH--AMBIENT RELERTIVE HUMIDITY CORRECION FACTOR FOR SHRINKAGE SHU=480E-6 RH=70.0
FC_GIRD=40.0
T_PRESTRESS=7.0
FC=FC_GIRD*T_PRESTRESS/(4+0.85*T_PRESTRESS) IF (CMNAME.EQ.\ RH=90 FC=0.8*FC END IF
CKF=35.0/(7.0+FC) CKTD=61.0-0.58*FC
RHSH=2.0-0.014*RH C
C=================INTERPOSITION===================== C ****COMPUTING THE COEFFICIENTS OF KABIR SERIES**** C
C STATEV(1)--THERMAL STRAIN
C STATEV(2)--ELASTIC STRAIN OF CURRENT INCREMENT C STATEV(3)--ELASTIC STRAIN OF PREVIOUS INCREAMENT C STATEV(4)--DTIME OF PREVIOUS INCREAMENT C DELTEE --INCREMENT OF ELASIC STRAIN TCUR=TIME(2) THE=STATEV(1) EECUR=STATEV(2) EEPRE=STATEV(3) DTPRE=STATEV(4) C
DO 4 IT=1,9
IF((TCUR.GE.T0(IT)).AND.(TCUR.LT.T0(IT+1)))THEN JJ=IT END IF
4 CONTINUE TA=T0(JJ) TB=T0(JJ+1)