36 1 JFT ,JLT ,IR ,IS ,NPT ,
37 2 MAT_IPLY ,IPM ,PM ,BUFMAT ,NPF ,
38 3 TF ,DT1C ,NGL ,OFF ,TH_IPLY ,
39 4 DEL_PLY ,SIG ,OFFI ,A11 ,FOR ,
40 5 MOM ,PLY_F ,THK0 ,SHF ,EXZ ,
41 6 EYZ ,AREA ,PID ,GEO ,SSP ,
42 7 POSLY ,THKLY ,KXX ,KYY ,KXY ,
43 . DEXZ ,DEYZ ,EINT ,GSTR ,NEL ,
53#include "implicit_f.inc"
67 INTEGER ,
INTENT(IN) :: NUMMAT
68 INTEGER JFT,JLT,IR,IS,NPT,NEL
69 INTEGER (MVSIZ,*),IPM(NPROPMI,*),NGL(*),NPF(*),PID(*)
72 . PM(NPROPM,*), TH_IPLY(MVSIZ,NPT),
73 . (MVSIZ,3,NPT),OFF(*),TF(*),DT1C(*),
74 . BUFMAT(*), SIG(MVSIZ,3,NPT),OFFI(MVSIZ,*),A11(MVSIZ,NPT),
75 . THK0(*),FOR(NEL,5),PLY_F(MVSIZ,5,NPT),
76 . exz(*),eyz(*),shf(*),
area(*),mom(nel,3),ssp(*),geo
77 . posly(*),thkly(*), kxx(*), kyy(*), kxy(*), dexz(*), deyz(*),
78 . eint(jlt,2), gstr(nel,8)
79 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
80 TYPE () ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
84 INTEGER I,J,K,JJ,IG,IC,II,IFL,IPLY,NVARF,NFAIL,JVAR,NVARF_MAX,
85 . IPMAT_IPLY,JINF,JSUP,
86 . ILAW,IRUPT,IMAT,JJINF,JJSUP,NBDEL,NF,NL,KK(5)
87 INTEGER MAT(MVSIZ),IFAIL(MVSIZ),MATF(MVSIZ),
88 . nbiply_del(mvsiz),niply_del(mvsiz,npt),jly,
92 . syz(mvsiz),sxz(mvsiz),szz(mvsiz) , du_iply(3,mvsiz),
93 . syz0(mvsiz),sxz0(mvsiz),szz0(mvsiz),
94 . epsyz_ip(mvsiz),epsxz_ip(mvsiz),epszz_ip(mvsiz),reduc(mvsiz,npt),
95 . degmb(mvsiz),degfx(mvsiz)
97 . nu, g, e33,f4,f5,vol,g0,dd,fac,dtinv,sspi,visc,
98 . wmc,thky,scale,th(npt),
99 . dezz_ip(mvsiz),deyz_ip(mvsiz),dexz_ip(mvsiz),thi(mvsiz)
102 .
DIMENSION(:) ,
POINTER :: uvarf
103 TYPE(buf_intlay_) ,
POINTER :: INTLAY
104 TYPE(BUF_INTLOC_) ,
POINTER :: ILBUF
105 TYPE(buf_fail_) ,
POINTER :: FBUF
106 TYPE(L_BUFEL_) ,
POINTER :: LBUF
112 sig(jft:jlt,1:3,1:elbuf_str%NINTLAY)=zero
132 niply_del(i,iply) = 0
133 thi(i) = thi(i) + th_iply(i,iply)
137 DO iply = 1,elbuf_str%NINTLAY
140 intlay => elbuf_str%INTLAY(iply)
141 ilbuf => elbuf_str%INTLAY(iply)%ILBUF(ir,is)
142 fbuf => elbuf_str%INTLAY(iply)%FAIL(ir,is)
154 e33 = pm(20, mat_iply(i, iply))*off(i)
155 g = pm(22, mat_iply(i, iply))*off(i)
156 g0 = g*th_iply(i,iply)*off(i)
158 fac= th_iply(i,iply)/thi(i)
160 a11(i,iply) = e33 + g
162 g = two*g/th_iply(i,iply)*off(i)
163 e33 = e33/th_iply(i,iply)*off(i)
164 a11(i,iply) = e33 + g
165 g0 = pm(22, mat_iply(i, iply))*off(i)
167 sxz0(i) = g*(del_ply(i,1,jsup) - del_ply(i,1,jinf))
168 syz0(i) = g*(del_ply(i,2,jsup) - del_ply(i,2,jinf))
171 sig(i,2,iply)= g*(del_ply(i,1,jsup) - del_ply(i,1,jinf))
173 sig(i,1,iply)= g*(del_ply(i,2,jsup) - del_ply(i,2,jinf))
175 sig(i,3,iply)= e33*(del_ply(i,3,jsup) - del_ply(i,3,jinf))
177 mat(i) = mat_iply(i,iply)
178 syz(i) = sig(i,1,iply)
179 sxz(i) = sig(i,2,iply)
180 szz(i) = sig(i,3,iply)
186 du_iply(2,i) = (del_ply(i,2,jsup) - del_ply(i,2,jinf))
187 du_iply(3,i) = (del_ply(i,3,jsup) - del_ply(i,3,jinf))
190 epszz_ip(i)= du_iply(3,i)/th_iply(i,iply)
191 epsyz_ip(i)= du_iply(2,i)/th_iply(i,iply)
192 epsxz_ip(i)= du_iply(1,i)/th_iply(i,iply)
195 dezz_ip(i) = epszz_ip(i) - ilbuf%EPS(ii + 1)
196 deyz_ip(i) = epsyz_ip(i) - ilbuf%EPS(ii + 2)
197 dexz_ip(i) = epsxz_ip(i) - ilbuf%EPS(ii + 3)
199 ilbuf%EPS(ii + 1) = epszz_ip(i)
200 ilbuf%EPS(ii + 2) = epsyz_ip(i)
201 ilbuf%EPS(ii + 3) = epsxz_ip(i)
207 uvarf => fbuf%FLOC(ifl)%VAR
208 nvarf = fbuf%FLOC(ifl)%NVAR
209 irupt = fbuf%FLOC(ifl)%ILAWF
211 IF (irupt == 18)
THEN
213 CALL delm01law(mat_param(imat)%FAIL(ifl),
214 1 jlt ,nvarf ,tt ,dt1c ,
216 4 off ,syz0 ,sxz0 ,szz ,uvarf ,
217 5 offi(1,iply),reduc(1,iply),intlay%COUNT,
220 ELSEIF (irupt == 19)
THEN
221 CALL delm02law(mat_param(imat)%FAIL(ifl),
222 1 jlt ,nvarf ,tt ,dt1c ,
224 4 off ,syz0 ,sxz0 ,szz ,du_iply,
225 5 uvarf ,offi(1,iply),reduc(1,iply),
228 ELSEIF(irupt == 24)
THEN
229 CALL delm24law(mat_param(imat)%FAIL(ifl),
230 1 jlt ,nvarf ,tt ,dt1c ,
232 4 off ,syz0 ,sxz0 ,szz ,epsyz_ip,
233 5 epsxz_ip,epszz_ip,uvarf ,offi(1,iply),reduc(1,iply),
243 IF (int(intlay%COUNT(i)) == 4)
THEN
244 fac = th_iply(i,iply)/thk0(i)
245 IF(reduc(i,iply) < 0 ) reduc(i,iply) = zero
246 sig(i,1,iply) = syz0(i) *reduc(i,iply)
247 sig(i,2,iply) = sxz0(i) *reduc(i,iply)
248 sig(i,3,iply) = szz(i) *reduc(i,iply)
249 IF(szz0(i) < zero)sig(i,3,iply) = szz0(i)
251 nbiply_del(i) = nbiply_del(i) + 1
252 nbdel = nbiply_del(i)
253 niply_del(i,nbdel) = iply
255 offi(i,iply) = reduc(i,iply)
274 ELSEIF(offi(i,iply) < one)
THEN
276 sig(i,1,iply) = syz0(i) *offi(i,iply)
277 sig(i,2,iply) = sxz0(i) *offi(i,iply)
278 sig(i,3,iply) = szz(i) *offi(i,iply)
279 IF(szz0(i) < zero)sig(i,3,iply) = szz0(i)
282 sig(i,1,iply) = syz0(i)
283 sig(i,2,iply) = sxz0(i)
284 sig(i,3,iply) = szz(i)
290 fac = visc + sqrt(visc**2 + one)
291 dtinv =dt1c(i)/
max(dt1c(i)**2,em20)
292 sspi=sqrt(a11(i,iply)*th_iply(i,iply)/pm(1,mat_iply(i,iply)))
293 visc =onep414*visc*pm(1,mat_iply(i,iply))*sspi
294 visc =visc*sqrt(
area(i))*dtinv
296 sig(i,1,iply)= sig(i,1,iply) + visc*deyz_ip(i)*offi(i,iply)
297 sig(i,2,iply)= sig(i,2,iply) + visc*dexz_ip(i)*offi(i,iply)
298 IF(sig(i,3,iply) < zero)
THEN
299 sig(i,3,iply)= sig(i,3,iply) + visc*dezz_ip(i)
301 sig(i,3,iply)= sig(i,3,iply) + visc*dezz_ip(i)*offi(i,iply)
306 ilbuf%SIG(kk(1) + i) = sig(i,3,iply)
307 ilbuf%SIG(kk(2) + i) = sig(i,1,iply)
308 ilbuf%SIG(kk(3) + i) = sig(i,2,iply)
311 a11(i,iply) = a11(i,iply) * fac*fac
322 IF (ir == 1 .and. is == 1) intlay%EINT(i) = zero
323 vol =
area(i)*th_iply(i,iply)
324 intlay%EINT(i) = intlay%EINT(i) + half*(
325 . sig(i,3,iply)*epszz_ip(i) +
326 . sig(i,1,iply)*epsyz_ip(i)+ sig(i,2,iply)*epsxz_ip(i))*vol
334 nbdel = nbiply_del(i)
344 th(jj) = th(jj) + thkly(jly)
349 nl = elbuf_str%NINTLAY + 1
352 th(jj) = th(jj) + thkly(jly)
356 scale = scale + th(jj)**3
358 scale =
max(scale,em01)
360 degfx(i) = - mom(i,1)*kxx(i) - mom(i,2)*kyy(i)
362 mom(i,1) = scale*mom(i,1)
363 mom(i,2) = scale*mom(i,2)
364 mom(i,3) = scale*mom(i,3)
366 degfx(i) = degfx(i) + mom(i,1)*kxx(i)+mom(i,2)*kyy(i)
368 eint(i,2)= eint(i,2) + degfx(i)*half*thk0(i)*thk0(i)*
area(i)