53
56
57
58
59#include "implicit_f.inc"
60
61
62
63#include "mvsiz_p.inc"
64
65
66
67 INTEGER, INTENT(IN) :: JTHE
68 INTEGER NEL, , NUVAR, NGL(NEL),ITABLE(*),
69 . INLOC
71 . time,timestep,uparam(nuparam),
72 .
area(nel),rho0(nel),eint(nel,2),
73 . thkly(nel),pla(nel),
74 . epspxx(nel),epspyy(nel),
75 . epspxy(nel),epspyz(nel),epspzx(nel),
76 . depsxx(nel),depsyy(nel),
77 . depsxy(nel),depsyz(nel),depszx(nel),
78 . epsxx(nel) ,epsyy(nel) ,
79 . epsxy(nel) ,epsyz(nel) ,epszx(nel) ,
80 . sigoxx(nel),sigoyy(nel),
81 . sigoxy(nel),sigoyz(nel),sigozx(nel),shf(nel),
82 . gs(nel),vol(nel),tempel(nel),die(nel),hardm(*),
83 . seq_output(nel),dplanl(nel)
84 TYPE(TTABLE) TABLE(*)
85 my_real,
DIMENSION(NEL),
INTENT(IN) :: loff
86
87
88
90 . signxx(nel),signyy(nel),
91 . signxy(nel),signyz(nel),signzx(nel),
92 . sigvxx(nel),sigvyy(nel),sigy(nel),
93 . sigvxy(nel),sigvyz(nel),sigvzx(nel),
94 . soundsp(nel),viscmax(nel),etse(nel)
95
96
97
98 my_real uvar(nel,nuvar), off(nel),thk(nel),
99 . dpla1(nel),epsp(nel)
100
101
102
103 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
105 . finter ,tf(*)
106 EXTERNAL finter
107
108
109
110 INTEGER I,J,N,NINDX,NMAX,
111 . INDEX(MVSIZ),OPTE,IFUNCE,FUNC_TAB
113 . a,b,s12,dezz,s1,s2,s3,epst,
114 . a_1,a_2,a_3,p_1,p_2,p_3,pp1,pp2,pp3,dr,dr0,
115 . e,a1,a2,g,g3,
116 . a01,a02,a03,a12,
117 . axx(mvsiz),ayy(mvsiz),axy(mvsiz),a_xy(mvsiz),
118 . dydx(mvsiz),svm(mvsiz),
119 . yld(mvsiz),yk(mvsiz),
120 . nnu1,nu,nu2,nu3,nu4,nu5,
121 . jq(mvsiz),jq2(mvsiz),
122 . epsmax,dpla_i(mvsiz),dpla_j(mvsiz),fail(mvsiz),
123 . epsr1,epsr2,s11(mvsiz),s22(mvsiz),
124 . b_1(mvsiz),b_2(mvsiz),b_3(mvsiz),q12(mvsiz),q21(mvsiz),
125 . f,df,yld_i,h(mvsiz),
126 . fisokin,hk(mvsiz),fhk,fa01,fa02,fa03,nu1,xfac,yfac,ce,
127 . e1(mvsiz), a11(mvsiz),a21(mvsiz),g1(mvsiz),g31(mvsiz),
128 . dydxe(mvsiz),escale(mvsiz),einf,normxx,normyy
130 . temp(mvsiz), vol0, rhocp
132 . DIMENSION(NEL,3) :: xx
133 INTEGER,DIMENSION(NEL,3) :: IPOS
134
135 DATA nmax/2/
136
137
138
139 func_tab = itable(1)
140 fisokin = uparam(1)
141 opte = uparam(23)
142 ce = uparam(25)
143
144
145 IF (opte==1.OR. ce > zero)THEN
146 DO i=1,nel
147 e1(i) = uparam(2)
148 a11(i) = uparam(3)
149 a21(i) = uparam(4)
150 g1(i) = uparam(5)
151 g31(i) = uparam(17)
152 ENDDO
153 nu = uparam(6)
154 a01 = uparam(7)
155 a02 = uparam(8)
156 a03 = uparam(9)
157 a12 = uparam(10)
158 epsmax = uparam(13)
159 einf = uparam(24)
160 IF(epsmax==zero)THEN
161
162
163
164
165 epsmax = ep30
166
167 ENDIF
168
169 IF (opte == 1)THEN
170 DO i=1,nel
171 IF(pla(i) > zero)THEN
172 ifunce = uparam(22)
173 escale(i) = finter(ifunc(ifunce),pla(i),npf,tf,dydxe(i))
174 e1(i) = escale(i)* e1(i)
175 a11(i) = e1(i)/(one - nu*nu)
176 a21(i) = nu*a11(i)
177 g1(i) = half*e1(i)/(one+nu)
178 g31(i) = three*g1(i)
179 gs(i) = g1(i) * shf(i)
180 ENDIF
181 ENDDO
182 ELSEIF ( ce /= zero) THEN
183 DO i=1,nel
184 IF(pla(i) > zero)THEN
185 e1(i) = e1(i)-(e1(i)-einf)*(one-exp(-ce*pla(i)))
186 a11(i) = e1(i)/(one - nu*nu)
187 a21(i) = nu*a11(i)
188 g1(i) = half*e1(i)/(one+nu)
189 g31(i) = three*g1(i)
190 gs(i) = g1(i) * shf(i)
191 ENDIF
192 ENDDO
193 ENDIF
194 xfac =uparam(11)
195 yfac =uparam(12)
196
197 nnu1 = nu / (one - nu)
198 epsr1 =uparam(14)
199 epsr2 =uparam(15)
200
201 DO i=1,nel
202
203
204
205 dpla1(i) = zero
206 ENDDO
207
208
209
210
211 IF(jthe > 0 ) THEN
212 DO i=1,nel
213 temp(i) = tempel(i)
214 ENDDO
215 ELSE
216 rhocp=uparam(21)
217 DO i=1,nel
218 temp(i) = uparam(20)
219 vol0 = vol(i) * rho0(i)
220 temp(i) = temp(i) + (eint(i,1)+ eint(i,2)) * rhocp/vol0
221 ENDDO
222 ENDIF
223
224 DO i=1,nel
225 signxx(i)=sigoxx(i) - uvar(i,2) +a11(i)*depsxx(i)+a21(i)*depsyy(i)
226 signyy(i)=sigoyy(i) - uvar(i,3) +a21(i)*depsxx(i)+a11(i)*depsyy(i)
227 signxy(i)=sigoxy(i) - uvar(i,4) +g1(i) *depsxy(i)
228 signyz(i)=sigoyz(i)+gs(i)*depsyz(i)
229 signzx(i)=sigozx(i)+gs(i)*depszx(i)
230
231 soundsp(i) = sqrt(a11(i)/rho0(i))
232 viscmax(i) = zero
233 etse(i) = one
234
235
236
237 epsp(i) = half*( abs(epspxx(i)+epspyy(i))
238 . + sqrt( (epspxx(i)-epspyy(i))*(epspxx(i)-epspyy(i))
239 . + epspxy(i)*epspxy(i) ) )
240
241
242
243 epst = half*( epsxx(i)+epsyy(i)
244 . + sqrt( (epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
245 . + epsxy(i)*epsxy(i) ) )
246 fail(i) =
max(zero,
min(one,(epsr2-epst)/(epsr2-epsr1)))
247
248 ENDDO
249
250
251
252 DO i=1,nel
253 ipos(i,1) = nint(uvar(i,5))
254 ipos(i,2) = nint(uvar(i,6))
255 ipos(i,3) = nint(uvar(i,7))
256
257 xx(i,1)=pla(i)
258 xx(i,2)=epsp(i)*xfac
259 xx(i,3)=temp(i)
260 END DO
261
263
264
265 DO i=1,nel
266 yld(i) = yfac*yld(i)
267 yld(i) = fail(i)*yld(i)
268 yld(i) =
max(yld(i),em20)
269 h(i) = fail(i)*dydx(i)
270 uvar(i,5) = ipos(i,1)
271 uvar(i,6) = ipos(i,2)
272 uvar(i,7) = ipos(i,3)
273 END DO
274
275 IF(fisokin/=zero)THEN
276 DO i=1,nel
277 ipos(i,1) = 1
278
279 xx(i,1)=zero
280 xx(i,2)=epsp(i)*xfac
281 xx(i,3)=temp(i)
282 END DO
284
285 DO i=1,nel
286
287 yld(i) = (one-fisokin) * yld(i) +
288 . fisokin * fail(i) * yfac * yk(i)
289 yld(i) =
max(yld(i),em20)
290 ENDDO
291 END IF
292
293
294
295 DO i=1,nel
296 sigy(i) = yld(i)
297 h(i) =
max(zero,h(i))
298 s1=a01*signxx(i)*signxx(i)
299 s2=a02*signyy(i)*signyy(i)
300 s3=a03*signxx(i)*signyy(i)
301 axy(i)=a12*signxy(i)*signxy(i)
302 svm(i)=sqrt(s1+s2-s3+axy(i))
303 IF (inloc == 0) THEN
304 dezz = -(depsxx(i)+depsyy(i))*nnu1
305 thk(i) = thk(i) + dezz*thkly(i)*off(i)
306 ENDIF
307 ENDDO
308
309
310
311 nindx=0
312 DO i=1,nel
313 IF(svm(i)>yld(i).AND.off(i)==one) THEN
314 nindx=nindx+1
315 index(nindx)=i
316 ENDIF
317 ENDDO
318 IF(nindx>0) THEN
319
320
321
322 DO j=1,nindx
323 i=index(j)
324 dpla_j(i)=(svm(i)-yld(i))/(g31(i)+h(i))
325 etse(i)= h(i)/(h(i)+e1(i))
326
327 hk(i) = h(i)*fisokin
328 fhk = four_over_3*hk(i)/a11(i)
329 fa01 =a01*fhk
330 fa02 =a02*fhk
331 fa03 =a03*fhk
332 nu1 =nu+half*fhk
333
334 nu2 = 1.-nu1*nu1+fhk*fhk
335 nu3 = nu1*half
336 nu4 = half*(one-nu)
337 nu5 = one-nnu1
338 s1=a01*nu1*two-a03-fa03
339 s2=a02*nu1*two-a03-fa03
340 s12=a03-nu1*(a01+a02)+fa03
341 s3=sqrt(nu2*(a01-a02)*(a01-a02)+s12*s12)
342 IF (abs(s1)<em20) THEN
343 q12(i)=zero
344 ELSE
345 q12(i)=-(a01-a02+s3+fa01-fa02)/s1
346 ENDIF
347 IF (abs(s2)<em20) THEN
348 q21(i)=zero
349 ELSE
350 q21(i)=(a01-a02+s3+fa01-fa02)/s2
351 ENDIF
352 jq(i)=one/(1-q12(i)*q21(i))
353 jq2(i)=jq(i)*jq(i)
354 a=a01*q12(i
355 b=a02*q21(i)
356 a_1=(a01+a03*q21(i)+b*q21(i))*jq2(i)
357 a_2=(a02+a03*q12(i)+a*q12(i))*jq2(i)
358 a_3=(a+b)*jq2(i)*two+a03*(jq2(i)*two-jq(i))
359 s11(i)=signxx(i)+signyy(i)*q12(i)
360 s22(i)=q21(i)*signxx(i)+signyy(i)
361 axx(i)=a_1*s11(i)*s11(i)
362 ayy(i)=a_2*s22(i)*s22(i)
363 a_xy(i)=a_3*s11(i)*s22(i)
364 a=a03*nu3
365 b=s3*jq(i)
366 b_1(i)=a02-a-b+fa02
367 b_2(i)=a01-a+b+fa01
368 b_3(i)=a12*(nu4+half*fhk)
369 h(i) = h(i)-hk(i)
370 h(i) =
max(zero,h(i))
371 ENDDO
372
373 DO n=1,nmax
374 DO j=1,nindx
375 i=index(j)
376 dpla_i(i)=dpla_j(i)
377 IF(dpla_i(i)>zero) THEN
378 yld_i =yld(i)+h(i)*dpla_i(i)
379 dr =a11(i)*dpla_i(i)/yld_i
380 p_1=one/(one + b_1(i)*dr)
381 pp1=p_1*p_1
382 p_2=one/(one+b_2(i)*dr)
383 pp2=p_2*p_2
384 p_3=one/(one+b_3(i)*dr)
385 pp3=p_3*p_3
386 f =axx(i)*pp1+ayy(i)*pp2-a_xy(i)*p_1*p_2+axy(i)*pp3
387 . -yld_i*yld_i
388 df =-((axx(i)*p_1-a_xy(i)*p_2*half)*pp1*b_1(i)+
389 . (ayy(i)*p_2-a_xy(i)*p_1*half)*pp2*b_2(i)+
390 . axy(i)*pp3*p_3*b_3(i))*(a11(i)-dr*h(i))/yld_i
391 . -h(i)*yld_i
392 dpla_j(i)=
max(zero,dpla_i(i)-f*half/df)
393 ELSE
394 dpla_j(i)=zero
395 ENDIF
396 ENDDO
397 ENDDO
398
399
400
401
402 DO j=1,nindx
403 i=index(j)
404 pla(i) = pla(i) + dpla_j(i)
405 yld_i =yld(i)+h(i)*dpla_j(i)
406 dr0 =dpla_j(i)/yld_i
407 dr =a11(i)*dr0
408 p_1=one/(one + b_1(i)*dr)
409 p_2=one/(one + b_2(i)*dr)
410 p_3=one/(one + b_3(i)*dr)
411 s1=s11(i)*p_1
412 s2=s22(i)*p_2
413 signxx(i)=jq(i)*(s1-s2*q12(i))
414 signyy(i)=jq(i)*(s2-s1*q21(i))
415 signxy(i)=signxy(i)*p_3
416 s1=a01*signxx(i)+a02*signyy(i)
417 . -a03*(signxx(i)+signyy(i))*half
418 IF (inloc == 0) THEN
419 dezz = - nu5*dpla_j(i)*s1/yld_i
420 thk(i) = thk(i) + dezz*thkly(i)*off(i)
421 ENDIF
422 s1 =a03*half
423 p_1=a01*signxx(i)-s1*signyy(i)
424 p_2=a02*signyy(i)-s1*signxx(i)
425 p_3=a12*signxy(i)
426 dr0 = two_third*dr0*hk(i)
427 uvar(i,2) = uvar(i,2) + (two*p_1+p_2)*dr0
428 uvar(i,3) = uvar(i,3) + (two*p_2+p_1)*dr0
429 uvar(i,4) = uvar(i,4) + half*p_3*dr0
430 dpla1(i) = dpla_j(i)
431 ENDDO
432
433 DO i=1,nel
434 IF(pla(i)>epsmax.AND.off(i)==one)off(i)=four_over_5
435 ENDDO
436 ENDIF
437 DO i=1,nel
438 signxx(i) = signxx(i) + uvar(i,2)
439 signyy(i) = signyy(i) + uvar(i,3)
440 signxy(i) = signxy(i) + uvar(i,4)
441 ENDDO
442
443 ELSE
444 e = uparam(2)
445 a1 = uparam(3)
446 a2 = uparam(4)
447 g = uparam(5)
448 nu = uparam(6)
449 a01 = uparam(7)
450 a02 = uparam(8)
451 a03 = uparam(9)
452 a12 = uparam(10)
453 g3 = uparam(17)
454 epsmax = uparam(13)
455 IF(epsmax==zero)THEN
456
457
458
459
460 epsmax = ep30
461
462 ENDIF
463
464 xfac =uparam(11)
465 yfac =uparam(12)
466
467 nnu1 = nu / (one - nu)
468 epsr1 =uparam(14)
469 epsr2 =uparam(15)
470
471 DO i=1,nel
472
473
474
475 dpla1(i) = zero
476 ENDDO
477
478
479
480
481 IF(jthe > 0 ) THEN
482 DO i=1,nel
483 temp(i) = tempel(i)
484 ENDDO
485 ELSE
486 rhocp=uparam(21)
487 DO i=1,nel
488 temp(i) = uparam(20)
489 vol0 = vol(i) * rho0(i)
490 temp(i) = temp(i) + (eint(i,1)+ eint(i,2)) * rhocp/vol0
491 ENDDO
492 ENDIF
493
494 DO i=1,nel
495 signxx(i)=sigoxx(i) - uvar(i,2) +a1*depsxx(i)+a2*depsyy(i)
496 signyy(i)=sigoyy(i) - uvar(i,3) +a2*depsxx(i)+a1*depsyy(i)
497 signxy(i)=sigoxy(i) - uvar(i,4) +g *depsxy(i)
498 signyz(i)=sigoyz(i)+gs(i)*depsyz(i)
499 signzx(i)=sigozx(i)+gs(i)*depszx(i)
500
501 soundsp(i) = sqrt(a1/rho0(i))
502 viscmax(i) = zero
503 etse(i) = one
504
505
506
507 epsp(i) = half*( abs(epspxx(i)+epspyy(i))
508 . + sqrt( (epspxx(i)-epspyy(i))*(epspxx(i)-epspyy(i))
509 . + epspxy(i)*epspxy(i) ) )
510
511
512
513 epst = half*( epsxx(i)+epsyy(i)
514 . + sqrt( (epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
515 . + epsxy(i)*epsxy(i) ) )
516 fail(i) =
max(zero,
min(one,(epsr2-epst)/(epsr2-epsr1)))
517
518 ENDDO
519
520
521
522 DO i=1,nel
523 ipos(i,1) = nint(uvar(i,5))
524 ipos(i,2) = nint(uvar(i,6))
525 ipos(i,3) = nint(uvar(i,7))
526
527 xx(i,1)=pla(i)
528 xx(i,2)=epsp(i)*xfac
529 xx(i,3)=temp(i)
530 END DO
531
533
534 DO i=1,nel
535 yld(i) = yfac*yld(i)
536 yld(i) = fail(i)*yld(i)
537 yld(i) =
max(yld(i),em20)
538 h(i) = fail(i)*dydx(i)
539 uvar(i,5) = ipos(i,1)
540 uvar(i,6) = ipos(i,2)
541 uvar(i,7) = ipos(i,3)
542 END DO
543
544 IF(fisokin/=zero)THEN
545 DO i=1,nel
546 ipos(i,1) = 1
547
548 xx(i,1)=zero
549 xx(i,2)=epsp(i)*xfac
550 xx(i,3)=temp(i)
551 END DO
553
554 DO i=1,nel
555
556 yld(i) = (one-fisokin) * yld(i) +
557 . fisokin * fail(i) * yfac * yk(i)
558 yld(i) =
max(yld(i),em20)
559 ENDDO
560 END IF
561
562
563
564 DO i=1,nel
565 sigy(i) = yld(i)
566 h(i) =
max(zero,h(i))
567 s1=a01*signxx(i)*signxx(i)
568 s2=a02*signyy(i)*signyy(i)
569 s3=a03*signxx(i)*signyy(i)
570 axy(i)=a12*signxy(i)*signxy(i)
571 svm(i)=sqrt(s1+s2-s3+axy(i))
572 IF (inloc == 0) THEN
573 dezz = -(depsxx(i)+depsyy(i))*nnu1
574 thk(i) = thk(i) + dezz*thkly(i)*off(i)
575 ENDIF
576 ENDDO
577
578
579
580 nindx=0
581 DO i=1,nel
582 IF(svm(i)>yld(i).AND.off(i)==one) THEN
583 nindx=nindx+1
584 index(nindx)=i
585 ENDIF
586 ENDDO
587 IF(nindx>0) THEN
588
589
590
591 DO j=1,nindx
592 i=index(j)
593 dpla_j(i)=(svm(i)-yld(i))/(g3+h(i))
594 etse(i)= h(i)/(h(i)+e)
595
596 hk(i) = h(i)*fisokin
597 fhk = four_over_3*hk(i)/a1
598 fa01 =a01*fhk
599 fa02 =a02*fhk
600 fa03 =a03*fhk
601 nu1 =nu+half*fhk
602
603 nu2 = 1.-nu1*nu1+fhk*fhk
604 nu3 = nu1*half
605 nu4 = half*(one-nu)
606 nu5 = one-nnu1
607 s1=a01*nu1*two-a03-fa03
608 s2=a02*nu1*two-a03-fa03
609 s12=a03-nu1*(a01+a02)+fa03
610 s3=sqrt(nu2*(a01-a02)*(a01-a02)+s12*s12)
611 IF (abs(s1)<em20) THEN
612 q12(i)=zero
613 ELSE
614 q12(i)=-(a01-a02+s3+fa01-fa02)/s1
615 ENDIF
616 IF (abs(s2)<em20) THEN
617 q21(i)=zero
618 ELSE
619 q21(i)=(a01-a02+s3+fa01-fa02)/s2
620 ENDIF
621 jq(i)=one/(1-q12(i)*q21(i))
622 jq2(i)=jq(i)*jq(i)
623 a=a01*q12(i)
624 b=a02*q21(i)
625 a_1=(a01+a03*q21(i)+b*q21(i))*jq2(i)
626 a_2=(a02+a03*q12(i)+a*q12(i))*jq2(i)
627 a_3=(a+b)*jq2(i)*two+a03*(jq2(i)*two-jq(i))
628 s11(i)=signxx(i)+signyy(i)*q12(i)
629 s22(i)=q21(i)*signxx(i)+signyy(i)
630 axx(i)=a_1*s11(i)*s11(i)
631 ayy(i)=a_2*s22(i)*s22(i)
632 a_xy(i)=a_3*s11(i)*s22(i)
633 a=a03*nu3
634 b=s3*jq(i)
635 b_1(i)=a02-a-b+fa02
636 b_2(i)=a01-a+b+fa01
637 b_3(i)=a12*(nu4+half*fhk)
638 h(i) = h(i)-hk(i)
639 h(i) =
max(zero,h(i))
640 ENDDO
641
642 DO n=1,nmax
643 DO j=1,nindx
644 i=index(j)
645 dpla_i(i)=dpla_j(i)
646 IF(dpla_i(i)>zero) THEN
647 yld_i =yld(i)+h(i)*dpla_i(i)
648 dr =a1*dpla_i(i)/yld_i
649 p_1=one/(one + b_1(i)*dr)
650 pp1=p_1*p_1
651 p_2=one/(one+b_2(i)*dr)
652 pp2=p_2*p_2
653 p_3=one/(one+b_3(i)*dr)
654 pp3=p_3*p_3
655 f =axx(i)*pp1+ayy(i)*pp2-a_xy(i)*p_1*p_2+axy(i)*pp3
656 . -yld_i*yld_i
657 df =-((axx(i)*p_1-a_xy(i)*p_2*half)*pp1*b_1(i)+
658 . (ayy(i)*p_2-a_xy(i)*p_1*half)*pp2*b_2(i)+
659 . axy(i)*pp3*p_3*b_3(i))*(a1-dr*h(i))/yld_i
660 . -h(i)*yld_i
661 dpla_j(i)=
max(zero,dpla_i(i)-f*half/df)
662 ELSE
663 dpla_j(i)=zero
664 ENDIF
665 ENDDO
666 ENDDO
667
668
669
670 DO j=1,nindx
671 i=index(j)
672 pla(i) = pla(i) + dpla_j(i)
673 yld_i =yld(i)+h(i)*dpla_j(i)
674 dr0 =dpla_j(i)/yld_i
675 dr =a1*dr0
676 p_1=one/(one + b_1(i)*dr)
677 p_2=one/(one + b_2(i)*dr)
678 p_3=one/(one + b_3(i)*dr)
679 s1=s11(i)*p_1
680 s2=s22(i)*p_2
681 signxx(i)=jq(i)*(s1-s2*q12(i))
682 signyy(i)=jq(i)*(s2-s1*q21(i))
683 signxy(i)=signxy(i)*p_3
684 s1=a01*signxx(i)+a02*signyy(i)
685 . -a03*(signxx(i)+signyy(i))*half
686 IF (inloc == 0) THEN
687 dezz = - nu5*dpla_j(i)*s1/yld_i
688 thk(i) = thk(i) + dezz*thkly(i)*off(i)
689 ENDIF
690 s1 =a03*half
691 p_1=a01*signxx(i)-s1*signyy(i)
692 p_2=a02*signyy(i)-s1*signxx(i)
693 p_3=a12*signxy(i)
694 dr0 = two_third*dr0*hk(i)
695 uvar(i,2) = uvar(i,2) + (two*p_1+p_2)*dr0
696 uvar(i,3) = uvar(i,3) + (two*p_2+p_1)*dr0
697 uvar(i,4) = uvar(i,4) + half*p_3*dr0
698 dpla1(i) = dpla_j(i)
699 ENDDO
700
701 DO i=1,nel
702 IF(pla(i)>epsmax.AND.off(i)==one)off(i)=four_over_5
703 ENDDO
704 ENDIF
705 DO i=1,nel
706 signxx(i) = signxx(i) + uvar(i,2)
707 signyy(i) = signyy(i) + uvar(i,3)
708 signxy(i) = signxy(i) + uvar(i,4)
709 ENDDO
710 ENDIF
711
712
713
714
715 DO i=1,nel
716 hardm(i) = h(i)
717 ENDDO
718
719
720
721 DO i = 1,nel
722 s1 = a01*signxx(i)*signxx(i)
723 s2 = a02*signyy(i)*signyy(i)
724 s3 = a03*signxx(i)*signyy(i)
725 axy(i) = a12*signxy(i)*signxy(i)
726 svm(i) = sqrt(s1+s2-s3+axy(i))
727 seq_output(i) = svm(i)
728 IF ((inloc > 0).AND.(loff(i) == one)) THEN
729 normxx = (two*a01*signxx(i) - a03*signyy(i))/(
max(two*svm(i),em20))
730 normyy = (two*a02*signyy(i) - a03*signxx(i))/(
max(two*svm(i),em20))
731 dezz =
max(dplanl(i),zero)*(normxx + normyy)
732 dezz = -nu*((signxx(i)-sigoxx(i)+signyy(i)-sigoyy(i))/e) - dezz
733 thk(i) = thk(i) + dezz*thkly(i)*off(i)
734 ENDIF
735 ENDDO
736
737 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)