40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "mvsiz_p.inc"
48
49
50
51#include "param_c.inc"
52
53
54
55 INTEGER ILAYER,JFT,JLT,IMAT,NEL,DMG_FLAG,ISRATE
56 INTEGER NGL(MVSIZ)
58 . pm(npropm,*),shf(*),sigdmg(mvsiz,5)
60 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
61 . depszx(mvsiz),pla(nel),sigoxx(nel),sigoyy(nel),sigoxy(nel),
62 . sigoyz(nel),sigozx(nel),signxx(nel),signyy(nel),signxy(nel),
63 . signyz(nel),signzx(nel),sigr(nel,6),damt(nel,2),tsaiwu(nel)
64 my_real,
DIMENSION(NEL),
INTENT(IN) :: epsd_pg
65 my_real,
DIMENSION(NEL),
INTENT(INOUT) :: epsd
67
68
69
70 INTEGER I
71
73 . sige(mvsiz,5)
74
75
76
77
78
79
80
82 2 imat ,damt ,shf ,ngl ,sige ,
83 3 depsxx ,depsyy ,depsxy ,depsyz ,depszx,
84 4 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx,
85 5 signxx ,signyy ,signxy ,signyz ,signzx,
86 6 epsd_pg,epsd ,israte ,asrate ,tsaiwu )
87
88 dmg_flag = 2
89
90 DO i=jft,jlt
91 IF (damt(i,1) < one) THEN
92 sigdmg(i,1)=sigr(i,1)*damt(i,1)
93 sigdmg(i,2)=sigr(i,2)*damt(i,1)
94 sigdmg(i,3)=sigr(i,3)*damt(i,1)
95 sigdmg(i,4)=sigr(i,4)*damt(i,1)
96 sigdmg(i,5)=sigr(i,5)*damt(i,1)
97 ELSEIF (damt(i,2) < one) THEN
98 sigdmg(i,1)=sige(i,1)
99 sigdmg(i,2)=sige(i,2)
100 sigdmg(i,3)=sige(i,3)
101 sigdmg(i,4)=sige(i,4)
102 sigdmg(i,5)=sige(i,5)
103 ELSE
104 sigdmg(i,1)=sige(i,1)
105 sigdmg(i,2)=sige(i,2)
106 sigdmg(i,3)=sige(i,3)
107 sigdmg(i,4)=sige(i,4)
108 sigdmg(i,5)=sige(i,5)
109 ENDIF
110 ENDDO
111
112 CALL m15crak(jft ,jlt ,pm ,damt ,
113 . sigr ,imat ,ilayer ,sige ,ngl ,
114 . nel )
115
116 RETURN
subroutine m15cplrc(nel, pm, wpla, imatly, damt, shf, ngl, sige, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, epsd_pg, epsd, israte, asrate, tsaiwu)
subroutine m15crak(jft, jlt, pm, damt, sigr, imat, ilayer, sig, ngl, nel)