44
45
46
47#include "implicit_f.inc"
48#include "comlock.inc"
49#include "param_c.inc"
50#include "com01_c.inc"
51#include "impl1_c.inc"
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 INTEGER , NUPARAM, NUVAR,IPLA,
97 . NGL(NEL),MAT(NEL),IPM(,*)
99 . time,timestep,uparam(*),
100 . rho(nel),rho0(nel),volume(nel),eint(nel),
101 . epspxx(nel),epspyy(nel),epspzz(nel),
102 . epspxy(nel),epspyz(nel),epspzx(nel),
103 . depsxx(nel),depsyy(nel),depszz(nel),
104 . depsxy
105 . epsxx(nel) ,epsyy(nel) ,epszz(nel) ,
106 . epsxy(nel) ,epsyz(nel) ,epszx(nel) ,
107 . sigoxx(nel),sigoyy(nel),sigozz(nel),
108 . sigoxy(nel),sigoyz(nel),sigozx(nel),
109 . signxx(nel),signyy(nel),signzz(nel),
110 . signxy(nel),signyz(nel),signzx(nel),
111 . epsp(nel),etse(nel),amu(nel)
112
113
114
116 . soundsp(nel),viscmax(nel)
117
118
119
121 . uvar(nel,nuvar), off(nel), yld(nel),pla(nel)
122
123
124
125 INTEGER NPF(*), MFUNC, KFUNC(MFUNC)
127 . finter,finter2, tf(*)
128 EXTERNAL finter,finter2
129
130
131
132
133
134
135
136
137
138
139
140 INTEGER ,J,J1,J2,IYLDC,IYLDT,IRATE,NCC,NCT,NFUNC,VP,IADBUF
141 INTEGER IPOS1(NEL),IAD1(NEL), ILEN1(NEL),
142 . IPOS2(NEL),IAD2(NEL), ILEN2(NEL),IFUNC(MFUNC),
143 . JJC(NEL),JJT(NEL)
144 my_real et, ec, c1t, gt,nu, cp, pc,pt,rpct
145 . dav,dpla,fac,epd,vm,
146 . r,fisokin,yrate,hkin ,sigpxx,sigpyy,
147 . sigpzz,sigpxy,sigpyz,sigpzx,dsxx,dsyy,dszz,
148 . dsxy,dsyz,dszx,df,sigy,dtinv
149 my_real ,
DIMENSION(MFUNC):: yfac,rate0
151 . yc ,yt ,h ,dydx2 ,dydx1 ,dpla1 ,
152 . p0 ,p ,hc ,ht ,rate ,
alpha,
153 . y1 ,y2 ,e ,c1 ,g , g2 ,g3,
154 . sigexx ,sigeyy ,sigezz ,sigexy ,sigeyz ,sigezx
155
156
157
158 DO i=1,nel
159 etse(i) = one
160 dpla1(i) = zero
161 ENDDO
162
163 iadbuf = ipm(7,mat(1))
164 irate = nint(uparam(iadbuf ))
165 et = uparam(iadbuf +1)
166 gt = uparam(iadbuf +4)
167
168 nu = uparam(iadbuf +5)
169 pc = uparam(iadbuf +6)
170 pt = uparam(iadbuf +7)
171 epsp0 = uparam(iadbuf +8)
172 cp = uparam(iadbuf +9)
173 ncc = nint(uparam(iadbuf + 10))
174 nct = nint(uparam(iadbuf + 11))
175 fisokin = uparam(iadbuf + 12)
176
177
178 nfunc = ipm(10,mat(1))
179 DO i=1,nfunc
180 ifunc(i) = ipm(10+i,mat(1))
181 yfac(i) = uparam(iadbuf + 12 + i )
182 rate0(i) = uparam(iadbuf + 12 + nfunc + i )
183 ENDDO
184
185 sigy = uparam(iadbuf + 13 + 2*mfunc)
186 vp = nint(uparam(iadbuf + 14 + 2*mfunc))
187 ec = uparam(iadbuf + 15 + 2*mfunc)
188 rpct = uparam(iadbuf + 16 + 2*mfunc)
189
190 IF (isigi==0) THEN
191 IF(time==zero)THEN
192 DO i=1,nel
193 uvar(i,1)=zero
194 uvar(i,2)=zero
195 uvar(i,3)=zero
196 uvar(i,4)=zero
197 uvar(i,5)=zero
198 uvar(i,6)=zero
199 uvar(i,7)=zero
200 DO j=1,nfunc
201 uvar(i,j+7)=zero
202 ENDDO
203 ENDDO
204 ENDIF
205 ENDIF
206
207
208 e(1:nel) = et
209 g(1:nel) = gt
210 c1t = et/three/(one - two*nu)
211 IF(ec > zero)THEN
212 DO i=1,nel
213
214 p(i) = c1t * amu(i)
215 c1t =
max(c1t,ec/three/(one - two*nu))
216 IF(pc == zero .and. pt == zero .AND. abs(p(iTHEN
217 e(i) = ec
218 ELSEIF(p(i) <= - rpct * pt) THEN
219 e(i) = et
220 ELSEIF(p(i) >= rpct *pc) THEN
221 e(i) = ec
222 ELSE
223 fac = rpct *(pc + pt)
224 fac = (rpct * pc - p(i))/fac
225 e(i) = fac*et + (one -fac)*ec
226 ENDIF
227 ENDDO
228 ENDIF
229 DO i=1,nel
230 g(i) = half*e(i)/( one + nu)
231 g2(i) = two*g(i)
232 g3(i) = three*g(i)
233 c1(i) = e(i)/three/(one - two*nu)
234 ENDDO
235
236
237
238
239 IF (fisokin > zero ) THEN
240 DO i=1,nel
241 sigoxx(i) = sigoxx(i) - uvar(i, 2)
242 sigoyy(i) = sigoyy(i) - uvar(i, 3)
243 sigozz(i) = sigozz(i) - uvar(i, 4)
244 sigoxy(i) = sigoxy(i) - uvar(i, 5)
245 sigoyz(i) = sigoyz(i) - uvar(i, 6)
246 sigozx(i) = sigozx(i) - uvar(i, 7)
247 ENDDO
248 ENDIF
249
250 DO i=1,nel
251 pla(i) = uvar(i,1)
252 p0(i) = -(sigoxx(i)+sigoyy(i)+sigozz(i))*third
253 dav = (depsxx(i)+depsyy(i)+depszz(i))*third
254 signxx(i)=sigoxx(i) + p0(i) + g2(i)*(depsxx(i)-dav)
255 signyy(i)=sigoyy(i) + p0(i) + g2(i)*(depsyy(i)-dav)
256 signzz(i)=sigozz(i) + p0(i) + g2(i)*(depszz(i)-dav)
257 signxy(i)=sigoxy(i) + g(i) *depsxy(i)
258 signyz(i)=sigoyz(i) + g(i) *depsyz(i)
259 signzx(i)=sigozx(i) + g(i) *depszx(i)
260
261 soundsp(i) = sqrt((c1t + four*g(i)/three)/rho0(i))
262 viscmax(i) = zero
263
264 sigexx(i) = signxx(i)
265 sigeyy(i) = signyy(i)
266 sigezz(i) = signzz(i)
267 sigexy(i) = signxy(i)
268 sigeyz(i) = signyz(i)
269 sigezx(i) = signzx(i)
270
271 jjc(i) = 1
272 jjt(i) = ncc + 1
273 ENDDO
274
275
276
277 IF (irate <= 3) THEN
278 DO i=1,nel
279 ipos1(i) = nint(uvar(i,8))
280 iad1(i) = npf(ifunc(1)) / 2+ 1
281 ilen1(i) = npf(ifunc(1)+ 1) / 2 - iad1(i)-ipos1(i)
282 ipos2(i) = nint(uvar(i,9))
283 iad2(i) = npf(ifunc(2)) / 2 + 1
284 ilen2(i) = npf(ifunc(2) + 1) / 2 - iad2(i)-ipos2(i)
285
286 uvar(i,8) = ipos1(i)
287 uvar(i,9) = ipos2(i)
288 END DO
289
290 CALL vinter(tf,iad1,ipos1,ilen1,nel,pla,dydx1,yc)
291 CALL vinter(tf,iad2,ipos2,ilen2,nel,pla,dydx2,yt)
292
293 IF(fisokin == zero) THEN
294 DO i=1,nel
295 yc(i)=yc(i)*yfac(1)
296 yt(i)=yt(i)*yfac(2)
297 hc(i)=dydx1(i)*yfac(1)
298 ht(i)=dydx2(i)*yfac(2)
299 ENDDO
300 ELSEIF(fisokin == one ) THEN
301 DO i=1,nel
302 hc(i)=dydx1(i)*yfac(1)
303 ht(i)=dydx2(i)*yfac(2)
304 yc(i)=tf(npf(ifunc(1)) + 1)
305 yt(i)=tf(npf(ifunc(2)) + 1)
306 yc(i)=yc(i)*yfac(1)
307 yt(i)=yc(i)*yfac(2)
308 yc(i) =
max(em20, yc(i))
309 yt(i) =
max(em20, yt(i))
310 ENDDO
311 ELSE
312 DO i=1,nel
313 yc(i)=yc(i)*yfac(1)
314 yt(i)=yt(i)*yfac(2)
315 yc(i) =
max(yc(i),em20)
316 yt(i) =
max(yt(i),em20)
317 hc(i) = dydx1(i)*yfac(1)
318 ht(i) = dydx2(i)*yfac(2)
319
320 y1(i)=yfac(1)*tf(npf(ifunc(1))+1)
321 y2(i)=yfac(2)*tf(npf(ifunc(2))+1)
322 yc(i) = (one - fisokin) * yc(i) + fisokin * y1(i)
323 yt(i) = (one - fisokin) * yt(i) + fisokin * y2(i)
324 ENDDO
325 ENDIF
326 ELSE
327
328
329
330 DO j = 2,ncc - 1
331 DO i=1,nel
332 IF(epsp(i) >= rate0(j))jjc(i) = j
333 ENDDO
334 ENDDO
335 DO i=1,nel
336 fac=rate0(jjc(i))
337 rate(i)=(epsp(i) - fac)/(rate0(jjc(i)+1 ) - fac)
338 ENDDO
339 DO i=1,nel
340 j1 = jjc(i)
341 j2 = j1+1
342 ipos1(i) = nint(uvar(i,7+j1 ))
343 iad1(i) = npf(ifunc(j1)) / 2 + 1
344 ilen1(i) = npf(ifunc(j1)+1) / 2 - iad1(i)-ipos1(i)
345 ipos2(i) = nint(uvar(i,7+j2))
346 iad2(i) = npf(ifunc(j2)) / 2 + 1
347 ilen2(i) = npf(ifunc(j2)+1) / 2 - iad2(i)-ipos2(i)
348
349 uvar(i,7+j1) = ipos1(i)
350 uvar(i,7+j2) = ipos2(i)
351 END DO
352 CALL vinter(tf,iad1,ipos1,ilen1,nel,pla,dydx1,y1)
353 CALL vinter(tf,iad2,ipos2,ilen2,nel,pla,dydx2,y2)
354
355 IF (fisokin == zero) THEN
356 DO i=1,nel
357 j1 = jjc(i)
358 j2 = j1+1
359 y1(i)=y1(i)*yfac(j1)
360 y2(i)=y2(i)*yfac(j2)
361 fac = rate(i)
362 yc(i) =(y1(i) + fac*(y2(i)-y1(i)))
363 yc(i) =
max(yc(i),em20)
364 dydx1(i)=dydx1(i)*yfac(j1)
365 dydx2(i)=dydx2(i)*yfac(j2)
366 hc(i) = (dydx1(i) + fac*(dydx2(i)-dydx1(i)))
367 ENDDO
368 ELSEIF (fisokin == one ) THEN
369 DO i=1,nel
370 j1 = jjc(i)
371 j2 = j1+1
372 fac = rate(i)
373 dydx1(i)=dydx1(i)*yfac(j1)
374 dydx2(i)=dydx2(i)*yfac(j2)
375 hc(i) =(dydx1(i) + fac*(dydx2
376
377 y1(i)=yfac(j1)*tf(npf(ifunc(j1)) + 1)
378 y2(i)=yfac(j2)*tf(npf(ifunc(j2)) + 1)
379 yc(i) = (y1(i) + fac*(y2(i)-y1(i)))
380 yc(i) =
max(em20,yc(i))
381 ENDDO
382 ELSE
383 DO i=1,nel
384 j1 = jjc(i)
385 j2 = j1 + 1
386 y1(i)=y1(i)*yfac(j1)
387 y2(i)=y2(i)*yfac(j2)
388 fac = rate(i)
389 yc(i) = (y1(i) + fac*(y2(i)-y1(i)))
390 yc(i) =
max(yc(i),em20)
391 dydx1(i)=dydx1(i)*yfac(j1)
392 dydx2(i)=dydx2(i)*yfac(j2)
393 hc(i) = (dydx1(i) + fac*(dydx2(i)-dydx1(i)))
394
395 y1(i)=yfac(j1)*tf(npf(ifunc(j1))+1)
396 y2(i)=yfac(j2)*tf(npf(ifunc(j2))+1)
397 yc(i) = (one - fisokin) * yc(i) +
398 . fisokin * (y1(i) + fac*(y2(i)-y1(i)))
399 ENDDO
400 ENDIF
401
402
403
404 DO j = 2,nct - 1
405 DO i=1,nel
406 IF (epsp(i)>=rate0(ncc + j))jjt(i)=ncc+j
407 ENDDO
408 ENDDO
409 DO i=1,nel
410 fac=rate0(jjt(i))
411 rate(i)=(epsp(i) - fac)/( rate0(jjt(i)+1)- fac)
412 ENDDO
413 DO i=1,nel
414 j1 = jjt(i)
415 j2 = j1+1
416 ipos1(i) = nint(uvar(i,7+j1))
417 iad1(i) = npf(ifunc(j1)) / 2 + 1
418 ilen1(i) = npf(ifunc(j1)+1) / 2 - iad1(i)-ipos1(i)
419 ipos2(i) = nint(uvar(i,7+j2))
420 iad2(i) = npf(ifunc(j2)) / 2 + 1
421 ilen2(i) = npf(ifunc(j2)+1) / 2 - iad2(i)-ipos2(i)
422
423 uvar(i,7+j1) = ipos1(i)
424 uvar(i,7+j2) = ipos2(i)
425 END DO
426 CALL vinter(tf,iad1,ipos1,ilen1,nel,pla,dydx1,y1)
427 CALL vinter(tf,iad2,ipos2,ilen2,nel,pla,dydx2,y2)
428
429 IF (fisokin == zero) THEN
430 DO i=1,nel
431 j1 = jjt(i)
432 j2 = j1+1
433 y1(i)=y1(i)*yfac(j1)
434 y2(i)=y2(i)*yfac(j2)
435 fac = rate
436 yt(i) =(y1(i) + fac*(y2(i)-y1(i)))
437 yt(i) =
max(yt(i),em20)
438 dydx1(i)=dydx1(i)*yfac(j1)
439 dydx2(i)=dydx2(i)*yfac(j2)
440 ht(i) = (dydx1(i) + fac*(dydx2(i)-dydx1(i)))
441 ENDDO
442 ELSEIF (fisokin == one ) THEN
443 DO i=1,nel
444 j1 = jjt(i)
445 j2 = j1+1
446 fac = rate(i)
447 dydx1(i)=dydx1(i)*yfac(j1)
448 dydx2(i)=dydx2(i)*yfac(j2)
449 ht(i) =(dydx1(i) + fac*(dydx2(i)-dydx1(i)))
450
451 y1(i)=yfac(j1)*tf(npf(ifunc(j1)) + 1)
452 y2(i)=yfac(j2)*tf(npf(ifunc(j2)) + 1)
453 yt(i) = (y1(i) + fac*(y2(i)-y1(i)))
454 yt(i) =
max(em20,yt(i))
455 ENDDO
456 ELSE
457 DO i=1,nel
458 j1 = jjt(i)
459 j2 = j1 + 1
460 y1(i)=y1(i)*yfac(j1)
461 y2(i)=y2(i)*yfac(j2)
462 fac = rate(i)
463 yt(i) = (y1(i) + fac*(y2(i)-y1(i)))
464 yt(i) =
max(yt(i),em20)
465 dydx1(i)=dydx1(i)*yfac(j1)
466 dydx2(i)=dydx2(i)*yfac(j2)
467 ht(i) = (dydx1(i) + fac*(dydx2(i)-dydx1(i)))
468
469 y1(i)=yfac(j1)*tf(npf(ifunc(j1))+1)
470 y2(i)=yfac(j2)*tf(npf(ifunc(j2))+1)
471 yt(i) = (one - fisokin) * yt(i) +
472 . fisokin * (y1(i) + fac*(y2(i)-y1(i)))
473 ENDDO
474 ENDIF
475 ENDIF
476
477
478 IF(irate == 3) THEN
479 DO i=1,nel
480
481 yrate = yfac(3)*finter(ifunc(3),epsp(i),npf,tf,df)
482 yc(i) = yrate*yc(i)
483 hc(i) = hc(i)*yrate
484
485 yrate = yfac(4)*finter(ifunc(4),epsp(i),npf,tf,df)
486 yt(i) = yrate*yt(i)
487 ht(i) = ht(i)*yrate
488 ENDDO
489 ENDIF
490
491 DO i=1,nel
492
493 p(i) = c1(i) * amu(i)
494 IF(pc == zero .AND. pt == zero .AND. abs(p(i)) < em10) THEN
495 yld(i) =
max(yc(i), em20)
496 h(i) = hc(i)
497 ELSEIF(p(i) <= -pt) THEN
498 yld(i) =
max(yt(i),em20)
499 h(i) = ht(i)
500 ELSEIF(p(i) >= pc) THEN
501 yld(i) =
max(yc(i), em20)
502 h(i) = hc(i)
503 ELSE
504 fac = pc + pt
505 fac = (pc - p(i))/fac
506 yld(i) = fac*yt(i) + (one -fac)*yc(i)
507 yld(i) =
max(em20,yld(i))
508 h(i) = fac*ht(i) + (one -fac)*hc(i)
509 ENDIF
510 ENDDO
511
512
513
514
515
516
517 IF (vp == 0) THEN
518 IF(irate == 1) THEN
519 DO i=1,nel
520 epd =
max(em20,epsp(i)/epsp0)
521 yrate = one + exp(cp*log(epd))
522 yld(i) = yld(i)*yrate
523 h(i) = h(i)*yrate
524 ENDDO
525
526 ELSEIF(irate == 2) THEN
527 DO i=1,nel
528 epd =
max(em20,epsp(i)/epsp0)
529 yrate = one + cp*log(epd)
530 yld(i) = yld(i)*yrate
531 h(i) = h(i)*yrate
532 ENDDO
533 ENDIF
534 ENDIF
535
536
537
538 IF(ipla==0)THEN
539
540 IF(vp > 0 ) THEN
541 dtinv = timestep/
max(em20, timestep**2)
542 DO i=1,nel
543 vm =half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
544 1 +signxy(i)**2+signyz(i)**2+signzx(i)**2
545 vm =sqrt(three*vm)
546 r =
min(one,yld(i)/
max(vm,em20))
547 epd = (one - r)*vm/
max(g3(i)+h(i),em20)
548 epd = epd*dtinv
549 epd =
max(em20,epd/epsp0)
550 yrate = one + exp(cp*log(epd))
551 IF(sigy == zero) THEN
552 yld(i) = yld(i)*yrate
553 h(i) = h(i)*yrate
554 ELSE
555 yld(i) = yld(i) + sigy*(yrate - one)
556 ENDIF
557 ENDDO
558 ENDIF
559
560 DO i=1,nel
561 vm =half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
562 1 +signxy(i)**2+signyz(i)**2+signzx(i)**2
563 vm =sqrt(three*vm)
564 r =
min(one,yld(i)/
max(vm,em20))
565 signxx(i)=signxx(i)*r-p(i)
566 signyy(i)=signyy(i)*r-p(i)
567 signzz(i)=signzz(i)*r-p(i)
568 signxy(i)=signxy(i)*r
569 signyz(i)=signyz(i)*r
570 signzx(i)=signzx(i)*r
571 pla(i)=pla(i) + (one - r)*vm/
max(g3(i) + h(i),em20)
572 uvar(i,1)=pla(i)
573 dpla1(i) = (one - r)*vm/
max(g3(i)+h(i),em20)
574 ENDDO
575 ELSEIF(ipla==2)THEN
576
577 IF(vp > 0 ) THEN
578 dtinv = timestep/
max(em20, timestep**2)
579 DO i=1,nel
580 vm =half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
581 1 +signxy(i)**2+signyz(i)**2+signzx(i)**2
582 vm =sqrt(three*vm)
583 r =
min(one,yld(i)/
max(vm,em20))
584 epd = (one-r)*vm/
max(g3(i),em20)
585 epd = epd*dtinv
586 epd =
max(em20,epd/epsp0)
587 yrate = one + exp(cp*log(epd))
588 IF(sigy == zero) THEN
589 yld(i) = yld(i)*yrate
590 h(i) = h(i)*yrate
591 ELSE
592 yld(i) = yld(i) + sigy*(yrate - one)
593 ENDIF
594 ENDDO
595 ENDIF
596 DO i=1,nel
597 vm =half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
598 1 +signxy(i)**2+signyz(i)**2+signzx(i)**2
599 vm =sqrt(three*vm)
600 r =
min(one,yld(i)/
max(vm,em20))
601 signxx(i)=signxx(i)*r-p(i)
602 signyy(i)=signyy(i)*r-p(i)
603 signzz(i)=signzz(i)*r-p(i)
604 signxy(i)=signxy(i)*r
605 signyz(i)=signyz(i)*r
606 signzx(i)=signzx(i)*r
607 pla(i)=pla(i) + (one-r)*vm/
max(g3(i),em20)
608 uvar(i,1)=pla(i)
609 dpla1(i) = (one-r)*vm/
max(g3(i),em20)
610 ENDDO
611 ELSEIF (ipla == 1) THEN
612
613 IF (vp > 0 ) THEN
614 dtinv = timestep/
max(em20, timestep**2)
615 DO i=1,nel
616 vm = half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
617 . + signxy(i)**2+signyz(i)**2+signzx(i)**2
618 vm = sqrt(three*vm)
619 r =
min(one,yld(i)/
max(vm,em20))
620
621 epd = (one - r)*vm/
max(g3(i)+h(i),em20)
622 epd = epd*dtinv
623 epd =
max(em20,epd/epsp0)
624 yrate = one + exp(cp*log(epd))
625 IF (sigy == zero) THEN
626 yld(i) = yld(i)*yrate
627 h(i) = h(i)*yrate
628 ELSE
629 yld(i) = yld(i) + sigy*(yrate - one)
630 ENDIF
631 ENDDO
632 ENDIF
633
634 DO i=1,nel
635 vm = three*(half*(signxx(i)**2+signyy(i)**2+signzz(i)**2)
636 . + signxy(i)**2+signyz(i)**2+signzx(i)**2)
637 IF (vm > yld(i)*yld(i)) THEN
638 vm = sqrt(vm)
639 r = yld(i) / vm
640
641 dpla = (one - r)*vm /
max(g3(i)+h(i),em20)
642
643 yld(i) =
max(yld(i) + (one-fisokin)*dpla*h(i), zero)
644 r =
min(one, yld(i) / vm)
645
646 signxx(i) = signxx(i)*r
647 signyy(i) = signyy(i)*r
648 signzz(i) = signzz(i)*r
649 signxy(i) = signxy(i)*r
650 signyz(i) = signyz(i)*r
651 signzx(i) = signzx(i)*r
652 pla(i) = pla(i) + dpla
653 uvar(i,1)= pla(i)
654 dpla1(i) = dpla
655 ENDIF
656 ENDDO
657
658 DO i=1,nel
659 signxx(i) = signxx(i) - p(i)
660 signyy(i) = signyy(i) - p(i)
661 signzz(i) = signzz(i) - p(i)
662 ENDDO
663
664 ENDIF
665
666
667
668
669
670 IF(fisokin > zero) THEN
671 DO i=1,nel
672 dsxx = sigexx(i) - signxx(i) - p(i)
673 dsyy = sigeyy(i) - signyy(i) - p(i)
674 dszz = sigezz(i) - signzz(i) - p(i)
675 dsxy = sigexy(i) - signxy(i)
676 dsyz = sigeyz(i) - signyz(i)
677 dszx = sigezx(i) - signzx(i)
678
679 hkin = two_third*fisokin*h(i)
680 alpha(i) = hkin/(g2(i)+hkin)
681 sigpxx =
alpha(i)*dsxx
682 sigpyy =
alpha(i)*dsyy
683 sigpzz =
alpha(i)*dszz
684 sigpxy =
alpha(i)*dsxy
685 sigpyz =
alpha(i)*dsyz
686 sigpzx =
alpha(i)*dszx
687
688 uvar(i, 2) = uvar(i, 2) + sigpxx
689 uvar(i, 3) = uvar(i, 3) + sigpyy
690 uvar(i, 4) = uvar(i, 4) + sigpzz
691 uvar(i, 5) = uvar(i, 5) + sigpxy
692 uvar(i, 6) = uvar(i, 6) + sigpyz
693 uvar(i, 7) = uvar(i, 7) + sigpzx
694
695 signxx(i) = signxx(i) + uvar(i, 2)
696 signyy(i) = signyy(i) + uvar(i, 3)
697 signzz(i) = signzz(i) + uvar(i, 4)
698 signxy(i) = signxy(i) + uvar(i, 5)
699 signyz(i) = signyz(i) + uvar(i, 6)
700 signzx(i) = signzx(i) + uvar(i, 7)
701 ENDDO
702 ENDIF
703
704 IF (impl_s > zero) THEN
705 DO i=1,nel
706 IF(dpla1(i) > zero) etse(i)= h(i)/g2(i)
707 ENDDO
708 ENDIF
709
710 RETURN
subroutine vinter(tf, iad, ipos, ilen, nel, x, dydx, y)