40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "com01_c.inc"
48
49
50
51 INTEGER ,INTENT(IN) :: NEL,NUPARAM,NUVAR,
52 . NVARTMP,INLOC
54 . time
55 my_real ,
DIMENSION(NUPARAM) ,
INTENT(IN) ::
56 . uparam
57 my_real ,
DIMENSION(NEL) ,
INTENT(IN) ::
58 . rho,thkly,off,gs,dplanl,
59 . depsxx,depsyy,depsxy,depsyz,depszx,
60 . sigoxx,sigoyy,sigoxy,sigoyz,sigozx
61 INTEGER ,INTENT(INOUT) :: VARTMP(NEL,NVARTMP)
62 my_real,
DIMENSION(NEL),
INTENT(IN) :: loff
63
64
65
66 my_real ,
DIMENSION(NEL,3) ,
INTENT(INOUT) ::
67 . siga,sigb
68 my_real ,
DIMENSION(NEL,4) ,
INTENT(INOUT) ::
69 . sigc
70 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) ::
71 . uvar
72 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) ::
73 . pla,thk
74 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) ::
75 . soundsp,dep,etse,sigy,seq,
76 . signxx,signyy,signxy,signyz,signzx,etimp
77
78
79
80 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
82 . tf(*)
83
84
85
86 INTEGER :: I,J,K,OPTE,OPTR,NITER,NINDX,IPLAS,ITER
87 INTEGER ,DIMENSION(NEL) :: INDEX,IPOS,ILEN,IAD2
89 . nu,bsat,einf,coe,fct,gsigma,dgsigma,rdot,
90 . eini,yield,byu,myu,hyu,rsat,p1,p2,p3,p4,n3,cst,
91 . cstt,df_dk1,df_dk2,dk1_dsigxx,dk1_dsigyy,dk2_dsigxx,
92 . dk2_dsigyy,dk2_dsigxy,normxx,normyy,normxy,dfdsig_c_2,
93 . dfdsig_a,dfdsig_alpha,dfdsig_beta,dphi_dlam,dpla_dlam,
94 . drnih,dmu,c1_kh,c2_kh,norm_sp,t1,dvxx_dlam,dvyy_dlam,dvxy_dlam,
95 . daxx_dlam,dayy_dlam,daxy_dlam,du_dlam
96 REAL(KIND=8) :: dlam,dep_dp(nel)
98 . young,shear,ayu,scalee,h,a1,a2,axx,ayy,axy,k1,k2,cyu,asta,camb,
99 . seff,r,rnih,depszz,deelzz,devboxx,devboyy,devbozz,devboxy,dydxe,
100 . deplxx,deplyy,deplxy,deplzz,devbxx,devbyy,devbzz,devbxy,phi,
101 . dbxx,dbyy,dbzz,dbxy,bqxx,bqyy,bqzz,bqxy,yld,max_asta,canbnxx,canbnyy,canbnxy,
102 . cannxx,cannyy,cannxy,ddep,u,vxx,vyy,vxy,ka1,ka2
103 my_real ,
DIMENSION(NEL,3) :: sigbo
104
105
106
107
108
109
110
111
112
113
114 norm_sp = -huge(norm_sp)
115 normxx = -huge(normxx)
116 normyy = -huge(normyy)
117 normxy = -huge(normxy)
118
119
120
121
122 eini = uparam(1)
123 nu = uparam(2)
124 yield = uparam(3)
125 byu = uparam(4)
126 c2_kh = uparam(5)
127 hyu = uparam(6)
128 bsat = uparam(7)
129 myu = uparam(8)
130 rsat = uparam(9)
131 einf = uparam(10)
132 coe = uparam(11)
133
134 optr = uparam(13)
135 p1 = uparam(14)
136 p2 = uparam(15)
137 p3 = uparam(16)
138 p4 = uparam(17)
139 n3 = uparam(18)
140 cst = uparam(19)
141 cstt = uparam(20)
142 iplas = nint(uparam(21))
143 c1_kh = uparam(22)
144
145 IF (iplas == 1) THEN
146 norm_sp = one
147 ELSEIF(iplas == 2) THEN
148 norm_sp = ep03 / eini
149 ENDIF
150
151 IF (isigi == 0 .and. time == zero) THEN
152 DO i=1,nel
153
154 uvar(i,3) = bsat - yield
155
156 uvar(i,4) = yield
157 ENDDO
158 ENDIF
159
160
161
162 IF (coe == zero .and. ifunc(1) == 0) THEN
163 young(1:nel) = eini
164
165 ELSE IF (opte == 1) THEN
166 ipos(1:nel) = vartmp(1:nel,1)
167 iad2(1:nel) = npf(ifunc(1)) / 2 + 1
168 ilen(1:nel) = npf(ifunc(1)+1) / 2 - iad2(1:nel) - ipos(1:nel)
169 CALL vinter(tf,iad2,ipos,ilen,nel,pla,dydxe,scalee)
170 young(1:nel) = eini * scalee(1:nel)
171 vartmp(1:nel,1) = ipos(1:nel)
172
173 ELSE
174 DO i=1,nel
175 IF (pla(i) > zero)THEN
176 young(i) = eini-(eini-einf)*(one-exp(-coe*pla(i)))
177 ELSE
178 young(i) = eini
179 ENDIF
180 ENDDO
181 ENDIF
182
183
184 DO i=1,nel
185 a1(i) = young(i)/(one-nu*nu)
186 a2(i) = nu*young(i)/(one-nu*nu)
187 shear(i) = young(i)*half/(one+nu)
188 r(i) = uvar(i,1)
189 rnih(i) = uvar(i,2)
190 ayu(i) = uvar(i,3)
191 max_asta(i) = uvar(i,6)
192 dep_dp(i) = zero
193 ddep(i) = zero
194 deplxx(i) = zero
195 deplyy(i) = zero
196 deplxy(i) = zero
197 deplzz(i) = zero
198 etimp(i) = young(i)/eini
199 sigbo(i,1) = sigb(i,1)
200 sigbo(i,2) = sigb(i,2)
201 sigbo(i,3) = sigb(i,3)
202 etse(i) = one
203 u(i) = one
204 ENDDO
205
206
207
208 !========================================================================
209 DO i=1,nel
210
211 signxx(i) = sigoxx(i) + a1(i)*depsxx(i)+a2(i)*depsyy(i)
212 signyy(i) = sigoyy(i) + a2(i)*depsxx
213 signxy(i) = sigoxy(i) + shear(i) * depsxy(i)
214 signyz(i) = sigoyz(i) + gs(i) * depsyz(i)
215 signzx(i) = sigozx(i) + gs(i) * depszx(i)
216
217 axx(i) = signxx(i) - siga(i,1) - sigb(i,1)
218 ayy(i) = signyy(i) - siga(i,2) - sigb(i,2)
219 axy(i) = signxy(i) - siga(i,3) - sigb(i,3)
220
221
222 IF (iplas == 1) THEN
223 seff(i) = sqrt(axx(i)**2 - two*p2*axx(i)*ayy(i) + p1*ayy(i)**2 + p3*axy(i)**2)
224
225 asta(i) = sqrt(siga(i,1)**2 - two*p2*siga(i,1)*siga(i,2) + p1*siga(i,2)**2 + p3*siga(i,3)**2)
226
227 ELSEIF (iplas == 2) THEN
228 k1(i)
229 k2(i) = (sqrt(((axx(i) - p3*ayy(i))/two)**two + (p4*axy(i))**two))
230 seff(i) = p1*(abs(k1(i)+k2(i))*norm_sp)**n3 + p1*(abs(k1(i)-k2(i))*norm_sp)**n3 + p2*(abs(two*k2(i))*norm_sp)**n3
231 seff(i) = (half*
max(seff(i),em20))**(one/n3)
232
233 ka1(i) = (siga(i,1) + p3*siga(i,2))/two
234 ka2(i) = sqrt(((siga(i,1) - p3*siga(i,2))/two)**two + (p4*siga(i,3))**two)
235 asta(i) = p1*abs(ka1(i)+ka2(i))**n3 + p1*abs(ka1(i)-ka2(i))**n3 + p2*abs(two*ka2(i))**n3
236 asta(i) = (half*
max(em20,asta(i)))**(one/n3)
237 ENDIF
238
240 max_asta(i) =
max(max_asta(i),asta(i))
241 IF (max_asta(i) < bsat - yield) THEN
242 cyu(i) = c1_kh
243 ELSE
244 cyu(i) = c2_kh
245 ENDIF
246 camb(i) = (cyu(i)*ayu(i) + myu*byu)/yield
247
248 t1 = cyu(i)*sqrt(ayu(i)/asta(i))
249 canbnxx(i) = t1 * siga(i,1) + myu*sigb(i,1)
250 canbnyy(i) = t1 * siga(i,2) + myu*sigb(i,2)
251 canbnxy(i) = t1 * siga(i,3) + myu*sigb(i,3)
252
253 cannxx(i) = t1 * siga(i,1)
254 cannyy(i) = t1 * siga(i,2)
255 cannxy(i) = t1 * siga(i,3)
256
257
258 phi(i) = seff(i) /norm_sp - yield
259
260 ENDDO
261
262
263
264
265 nindx = 0
266 DO i=1,nel
267 IF (phi(i) >= zero .AND. off(i) == one) THEN
268 nindx = nindx+1
269 index(nindx) = i
270 ENDIF
271 ENDDO
272#include "vectorize.inc"
273 DO j=1,nindx
274 i = index(j)
275 vxx(i) = axx(i)
276 vyy(i) = ayy(i)
277 vxy(i) = axy(i)
278 ENDDO
279
280
281
282
283
284
285
286 niter = 3
287
288 DO iter = 1,niter
289#include "vectorize.inc"
290
291 DO j=1,nindx
292
293 i = index(j)
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308 IF (iplas == 1) THEN
309 normxx = (axx(i)-p2*ayy(i))/(
max(seff(i),em20))
310 normyy = (p1*ayy(i)-p2*axx(i))/(
max(seff(i),em20))
311 normxy = (p3*axy(i))/(
max(seff(i),em20))
312
313 ELSEIF (iplas == 2) THEN
314
315 df_dk1 = ((seff(i)/norm_sp)**(1-n3))*(p1/two)* (
316 . + sign(one,k1(i)+k2(i))*(abs(k1(i)+k2(i))**(n3-1))
317 . + sign(one
318 df_dk2 = ((seff(i)/norm_sp)**(1-n3))*((p1/two)*(
319 . + sign(one,k1(i)+k2(i))*(abs(k1(i)+k2(i))**(n3-1))
320 . - sign(one,k1(i)-k2(i))*(abs(k1(i)-k2(i))**(n3-1)))
321 . + p2*(abs(two*k2(i))**(n3-1)))
322 dk1_dsigxx = half
323 dk1_dsigyy = p3 /two
324 dk2_dsigxx = (axx(i)-p3*ayy(i)) /(
max(four*k2(i),em20))
325 dk2_dsigyy = -p3*(axx(i)-p3*ayy(i)) /(
max(four*k2(i),em20))
326 dk2_dsigxy = (p4**two)*axy(i) /
max(k2(i),em20)
327
328 normxx = df_dk1*dk1_dsigxx+ df_dk2*dk2_dsigxx
329 normyy = df_dk1*dk1_dsigyy+ df_dk2*dk2_dsigyy
330 normxy = df_dk2*dk2_dsigxy
331 ENDIF
332
333
334
335
336
337
338
339 dfdsig_a = normxx * axx(i)
340 . + normyy * ayy(i)
341 . + normxy * axy(i)
342
343 dpla_dlam = dfdsig_a/yield
344
345 du_dlam = -u(i)**2 * camb(i) * dpla_dlam
346 dvxx_dlam = -(a1(i)*normxx + a2(i)*normyy) + canbnxx(i) * dpla_dlam
347 dvyy_dlam = -(a1(i)*normyy + a2(i)*normxx) + canbnyy(i)
348 dvxy_dlam = -shear(i) *normxy + canbnxy(i) * dpla_dlam
349
350 daxx_dlam = du_dlam * vxx(i) + dvxx_dlam * u(i)
351 dayy_dlam = du_dlam * vyy(i) + dvyy_dlam
352 daxy_dlam = du_dlam * vxy(i) + dvxy_dlam * u(i)
353
354
355
356 dphi_dlam = normxx * daxx_dlam + normyy * dayy_dlam + normxy * daxy_dlam
357 dphi_dlam = sign(
max(abs(dphi_dlam),em20) ,dphi_dlam)
358
359 ! 3 - computation of plastic multiplier and variables update
360
361
362
363 dlam = - phi(i)/dphi_dlam
364
365 ! plastic strains tensor update
366 deplxx(i) = dlam*normxx
367 deplyy(i) = dlam*normyy
368 deplxy(i) = dlam*normxy
369
370
371 pla(i) = pla(i) + dlam*dpla_dlam
372
373 ddep(i) = dlam * dpla_dlam
374
375 dep_dp(i) = dep_dp(i) + dlam*dpla_dlam
376 dep_dp(i) =
max(dep_dp(i),zero)
377
378
379 signxx(i) = signxx(i) - a1(i)*deplxx(i) - a2(i)*deplyy(i)
380 signyy(i) = signyy(i) - a2(i)*deplxx(i) - a1(i)*deplyy(i)
381 signxy(i) = signxy(i) - shear(i)*deplxy(i)
382
383
384 u(i) = one /(one + camb(i) * ddep(i) )
385 vxx(i) = signxx(i) - siga(i,1) - sigb(i,1) + canbnxx(i) * ddep(i)
386 vyy(i) = signyy(i) - siga(i,2) - sigb(i,2) + canbnyy(i) * ddep(i)
387 vxy(i) = signxy(i) - siga(i,3) - sigb(i,3) + canbnxy(i
388 axx(i) = u(i) * vxx(i)
389 ayy(i) = u(i) * vyy(i)
390 axy(i) = u(i) * vxy(i)
391
392
393
394 siga(i,1) = siga(i,1) + ((cyu(i)*ayu(i)*axx(i)/yield) - cannxx(i) ) * ddep(i)
395 siga(i,2) = siga(i,2) + ((cyu(i)*ayu(i)*ayy(i)/yield) - cannyy
396 siga(i,3) = siga(i,3) + ((cyu(i)*ayu(i)*axy(i)/yield) - cannxy(i) ) * ddep(i)
397
398
399 sigb(i,1) = sigb(i,1) + ((myu *byu *axx(i)/yield) - myu*sigbo(i,1))* ddep(i)
400 sigb(i,2) = sigb(i,2) +
401 sigb(i,3) = sigb(i,3) + ((myu *byu *axy(i)/yield)
402
403
404
405 IF (iplas == 1) THEN
406 seff(i) = sqrt(axx(i)**2 - two*p2*axx(i)*ayy(i) + p1*ayy(i)**2 + p3*axy(i)**2)
407
408 ELSEIF (iplas == 2) THEN
409 k1(i) = (axx(i) + p3*ayy(i))/two
410 k2(i) = sqrt(((axx(i) - p3*ayy(i))/two)**two + (p4*axy(i))**two)
411 seff(i) = p1*(abs(k1(i)+k2(i))*norm_sp)**n3 + p1*(abs(k1(i)-k2(i))*norm_sp)**n3 + p2*(abs(two*k2(i))*norm_sp)**n3
412 seff(i) = (half*seff(i))**(one/n3)
413 ENDIF
414
415
416 phi(i) = seff(i)/norm_sp - yield
417
418
419 IF (inloc == 0) deplzz(i) = deplzz(i) - (deplxx(i)+deplyy(i))
420 ENDDO
421 ENDDO
422
423
424
425#include "vectorize.inc"
426
427 DO j=1,nindx
428
429 i = index(j)
430
431 IF (iplas == 1) THEN
432 asta(i) = sqrt(siga(i,1)**2 - two*p2*siga(i,1)*siga(i,2) + p1*siga(i,2)**2 + p3*siga(i,3)**2)
433
434 ELSEIF (iplas == 2) THEN
435 ka1(i) = (siga(i,1) + p3*siga(i,2))/two
436 ka2(i) = sqrt(((siga(i,1) - p3*siga(i,2))/two)**two + (p4*siga(i,3))**two)
437 asta(i) = p1*abs(ka1(i)+ka2(i))**n3 + p1*abs(ka1(i)-ka2(i))**n3 + p2*abs(two*ka2(i))**n3
438 asta(i) = (half*
max(em20,asta(i)))**(one/n3)
439 asta(i) = asta(i)
440 ENDIF
441 asta(i) =
max(asta(i),em20)
442 max_asta(i) =
max(max_asta(i),asta(i))
443 IF (max_asta(i) < bsat - yield) THEN
444 cyu(i) = c1_kh
445 ELSE
446 cyu(i) = c2_kh
447 ENDIF
448
449
450 devboxx(i) = two_third*sigbo(i,1) - third*sigbo(i,2)
451 devboyy(i) = two_third*sigbo(i,2) - third*sigbo(i,1)
452 devbozz(i) = -third*sigbo(i,1) - third*sigbo(i,2)
453 devboxy(i) = sigbo(i,3)
454
455
456 devbxx(i) = two_third*sigb(i,1) - third*sigb(i,2)
457 devbyy(i) = two_third*sigb(i,2) - third*sigb(i,1)
458 devbzz(i) = -third*sigb(i,1) - third*sigb(i,2)
459 devbxy(i) = sigb(i,3)
460
461
462
463
464
465 bqxx(i) = devbxx(i) - sigc(i,1)
466 bqyy(i) = devbyy(i) - sigc(i,2)
467 bqzz(i) = devbzz(i) - sigc(i,3)
468 bqxy(i) = devbxy(i) - sigc(i,4)
469
470 dbxx(i) = devbxx(i) - devboxx(i)
471 dbyy(i) = devbyy(i) - devboyy(i)
472 dbzz(i) = devbzz(i) - devbozz(i)
473 dbxy(i) = devbxy(i) - devboxy(i)
474
475 gsigma = three_half*(bqxx(i)*bqxx(i) + bqyy(i)*bqyy(i) + bqzz(i
476 . - rnih(i)*rnih(i)
477
478 dgsigma = bqxx(i)*dbxx(i) + bqyy(i)*dbyy(i) + bqzz(i)*dbzz(i) + two*bqxy(i)*dbxy(i)
479
480 IF ((gsigmaTHEN
481
482 IF (optr == one) THEN
483 rdot = rsat*((pla(i)+cst)**cstt-cst**cstt) - r(i)
484 r(i) = rsat*((pla(i)+cst)**cstt-cst**cstt)
485 ELSE
486 rdot = myu*(rsat - r(i))*dep_dp(i)
487 r(i) = r(i) + rdot
488 ENDIF
489 ayu(i) = bsat + r(i) - yield
490
491 IF (hyu > zero) THEN
492
493 IF (rnih(i) == zero) THEN
494 dmu = (gsigma/(three*hyu*dgsigma)) - one
495 ELSE
496 dmu = (one-hyu)*three_half*dgsigma/(rnih(i)**2)
497 ENDIF
498
499 sigc(i,1) = devbxx(i) - bqxx(i)/(one+dmu)
500 sigc(i,2) = devbyy(i) - bqyy(i)/(one+dmu)
501 sigc(i,3) = devbzz(i) - bqzz(i)/(one+dmu)
502 sigc(i,4) = devbxy(i) - bqxy(i)/(one+dmu)
503
504 bqxx(i) = devbxx(i) - sigc(i,1)
505 bqyy(i) = devbyy(i) - sigc(i,2)
506 bqzz(i) = devbzz(i) - sigc(i,3)
507 bqxy(i) = devbxy(i) - sigc(i,4)
508
509 dgsigma = bqxx(i)*dbxx(i) + bqyy(i)*dbyy(i) + bqzz(i)*dbzz(i) + two*bqxy
510
511 IF (rdot > zero) THEN
512 IF (rnih(i) == zero) THEN
513
514 rnih(i) = three*hyu*dgsigma
515 ELSE
516
517 drnih = hyu*three_half*dgsigma/rnih(i)
518
519 rnih(i) = rnih(i) + drnih
520 ENDIF
521 ENDIF
522 ENDIF
523 ENDIF
524
525 ENDDO
526
527
528
529
530#include "vectorize.inc"
531 DO j = 1,nindx
532
533 i = index(j)
534
535
536 IF (iplas == 1) THEN
537 yld(i) = sqrt(signxx(i)**2 - two*p2*signxx(i)*signyy(i) + p1*signyy(i)**2 + p3*signxy(i)**2)
538
539 ELSEIF (iplas == 2) THEN
540 k1(i) = (signxx(i) + p3*signyy(i))/two
541 k2(i) = sqrt(((signxx(i) - p3*signyy(i))/two)**two + (p4*signxy(i))**two)
542 yld(i) = p1*abs(k1(i)+k2(i))**n3 + p1*abs(k1(i)-k2(i))**n3 + p2*abs(two*k2(i
543 yld(i) = (half*
max(yld(i),em20))**(one/n3)
544 yld(i) = yld(i)
545 ENDIF
546
547 IF (dep_dp(i) > zero) THEN
548 h(i) = abs(yld(i)-uvar(i,4))/dep_dp(i)
549
550 etse(i) = h(i) / (h(i)+young(i))
551 ENDIF
552
553 uvar(i,1) = r(i)
554 uvar(i,2) = rnih(i)
555 uvar(i,3) = ayu(i)
556 uvar(i,4) = yld(i)
557 uvar(i,6) = max_asta(i)
558 END DO
559
560 DO i=1,nel
561
562 axx(i) = signxx(i) - siga(i,1) - sigb(i,1)
563 ayy(i) = signyy(i) - siga(i,2) - sigb(i,2)
564 axy(i) = signxy(i) - siga(i,3) - sigb(i,3)
565
566 IF (iplas == 1) THEN
567 seff(i) = sqrt(axx(i)**2 - two*p2*axx(i)*ayy(i) + p1*ayy(i)**2 + p3*axy(i)**2)
568
569 ELSEIF (iplas == 2) THEN
570 k1(i) = (axx(i) + p3*ayy(i))/two
571 k2(i) = sqrt(((axx(i) - p3*ayy(i))/two)**two + (p4*axy(i))**two)
572 seff(i) = p1*abs(k1(i)+k2(i))**n3 + p1*abs(k1(i)-k2(i))**n3 + p2*abs(two*k2(i))**n3
573 seff(i) = (half*seff(i))**(one/n3)
574 ENDIF
575 seq(i) = seff(i)
576 deelzz(i) = -nu*(signxx(i)-sigoxx(i)+signyy(i)-sigoyy(i))/young(i)
577
578
579
580
581 IF ((inloc > 0).AND.(loff(i) == one)) THEN
582
583 IF (iplas == 1) THEN
584 seff(i) = sqrt(axx(i)**2 - two*p2*axx(i)*ayy(i) + p1*ayy(i)**2 + p3*axy(i)**2)
585 normxx = (axx(i)-p2*ayy(i))/(
max(seff(i),em20))
586 normyy = (p1*ayy(i)-p2*axx(i))/(
max(seff(i),em20))
587 normxy = (p3*axy(i))/(
max(seff(i),em20))
588
589 ELSEIF (iplas == 2) THEN
590 k1(i) = (axx(i) + p3*ayy(i))/two
591 k2(i) = (sqrt(((axx(i) - p3*ayy(i))/two)**two + (p4*axy(i))**two))
592 seff(i) = p1*abs(k1(i)+k2(i))**n3 + p1*abs(k1(i)-k2(i))**n3 + p2*abs(two*k2(i))**n3
593 seff(i) = (half*
max(seff(i),em20))**(one/n3)
594 df_dk1 = (seff(i)**(1-n3))*(p1/two)*(
595 . + sign(one,k1(i)+k2(i))*(abs(k1(i)+k2(i))**(n3-1))
596 . + sign(one,k1(i)-k2(i))*(abs(k1(i)-k2(i))**(n3-1)))
597 df_dk2 = (seff(i)**(1-n3))*((p1/two)*(
598 . + sign(one,k1(i)+k2(i))*(abs(k1(i)+k2(i))**(n3-1))
599 . - sign(one,k1(i)-k2(i))*(abs(k1(i)-k2(i))**(n3-1)))
600 . + p2*(abs(two*k2(i))**(n3-1)))
601 dk1_dsigxx = half
602 dk1_dsigyy = p3/two
603 dk2_dsigxx = (axx(i)-p3*ayy(i))/(
max(four*k2(i),em20))
604 dk2_dsigyy = -p3*(axx(i)-p3*ayy(i))/(
max(four*k2(i),em20))
605 dk2_dsigxy = (p4**two)*axy(i)/
max(k2(i),em20)
606 normxx = df_dk1*dk1_dsigxx + df_dk2*dk2_dsigxx
607 normyy = df_dk1*dk1_dsigyy + df_dk2*dk2_dsigyy
608 normxy = df_dk2*dk2_dsigxy
609 ENDIF
610 dfdsig_a = normxx * axx(i)
611 . + normyy * ayy(i)
612 . + normxy * axy(i)
613 IF (dfdsig_a /= zero) THEN
614 deplzz(i) = -
max(dplanl(i),zero)*(yield/dfdsig_a)*(normxx + normyy)
615 ELSE
616 deplzz(i) = zero
617 ENDIF
618 ENDIF
619
620 depszz(i) = deelzz(i) + deplzz(i)
621 thk(i) = thk(i) + depszz(i)*thkly(i)*off(i)
622 soundsp(i) = sqrt(a1(i)/rho(i))
623 sigy(i) = uvar(i,4)
624 dep(i) = dep_dp(i)
625 ENDDO
626
627 RETURN
subroutine vinter(tf, iad, ipos, ilen, nel, x, dydx, y)