📄 stress.for
字号:
C$DEBUG
C$LARGE
SUBROUTINE STRESS(DMATX,LPROP,NTYPE,PROPS,NDOFN,CARTD,ELDIS,
. SHAPE,GPCOD,NSTRE,VIVEL,DTIME,STRSG,KGASP,
. MTOTG,MMATS,SVECT,NNODE,NSTR1,KGAUS,TLDIS) !(Page 295)
C**********************************************************************
C
C*** EVALUATE THE INCREMENTS OF STRAIN AND STRESS
C
C**********************************************************************
DIMENSION SVECT(4),PROPS(MMATS,10),ELDIS(2,9),CARTD(2,9),
. DMATX(4,4),AGASH(2,2),STRES(4),STRAN(4),STRSG(4,MTOTG),
. SHAPE(9),VIVEL(5,MTOTG),TLDIS(2,9),CGASH(2,2),
. GPCOD(2,9)
POISS=PROPS(LPROP,2)
DO 10 IDOFN=1,NDOFN
DO 10 JDOFN=1,NDOFN
BGASH=0.0
DGASH=0.0
DO 20 INODE=1,NNODE
DGASH=DGASH+CARTD(JDOFN,INODE)*TLDIS(IDOFN,INODE)
20 BGASH=BGASH+CARTD(JDOFN,INODE)*ELDIS(IDOFN,INODE)
CGASH(IDOFN,JDOFN)=BGASH
10 AGASH(IDOFN,JDOFN)=DGASH
C
C*** CALCULATE THE TOTAL AND INCREMENTAL STRAINS
C
SVECT(1)=AGASH(1,1)
SVECT(2)=AGASH(2,2)
SVECT(3)=AGASH(1,2)+AGASH(2,1)
IF(NTYPE.NE.3) GO TO 70
SVECT(4)=0.0
DO 60 INODE=1,NNODE
SVECT(4)=SVECT(4)+TLDIS(1,INODE)*SHAPE(INODE)/GPCOD(1,KAGSP)
60 CONTINUE
70 CONTINUE
STRAN(1)=CGASH(1,1)
STRAN(2)=CGASH(2,2)
STRAN(3)=CGASH(1,2)+CGASH(2,1)
IF(NTYPE.NE.3) GO TO90
STRAN(4)=0.0
DO 80 INODE=1,NNODE
STRAN(4)=STRAN(4)+ELDIS(1,INODE)*SHAPE(INODE)/GPCOD(1,KGASP)
80 CONTINUE
90 CONTINUE
DO 50 ISTRE=1,NSTRE
50 STRAN(ISTRE)=STRAN(ISTRE)-VIVEL(ISTRE,KGAUS)*DTIME
C
C*** AND THE INCREMENTAL STRESSES
C
DO 30 ISTRE=1,NSTRE
STRES(ISTRE)=0.0
DO 30 JSTRE=1,NSTRE
30 STRES(ISTRE)=STRES(ISTRE)+DMATX(ISTRE,JSTRE)*STRAN(JSTRE)
IF(NTYPE.EQ.1) STRES(4)=0.0
IF(NTYPE.EQ.2) STRES(4)=POISS*(STRES(1)+STRES(2))
DO 40 ISTR1=1,NSTR1
40 STRSG(ISTR1,KGAUS)=STRSG(ISTR1,KGAUS)+STRES(ISTR1)
RETURN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -