42
43
44
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "com04_c.inc"
55
56
57
58 INTEGER NEL,NUPARAM,NUVAR,JTHE,NUMTABL,ITABLE(NUMTABL),NVARTMP
59 INTEGER, DIMENSION(NEL), INTENT(IN) :: NGL
61 . time,timestep
62 INTEGER :: VARTMP(NEL,NVARTMP)
63 my_real,
DIMENSION(NUPARAM),
INTENT(IN) ::
64 . uparam
65 my_real,
DIMENSION(NEL),
INTENT(IN) ::
66 . rho,shf,
67 . depsxx,depsyy,depsxy,depsyz,depszx,
68 . sigoxx,sigoyy,sigoxy,sigoyz,sigozx
69
70 my_real ,
DIMENSION(NEL),
INTENT(OUT) ::
71 . soundsp,sigy,et,
72 . signxx,signyy,signxy,signyz,signzx
73
74 my_real ,
DIMENSION(NEL),
INTENT(INOUT) ::
75 . dpla,off
76 my_real ,
DIMENSION(NEL,4),
INTENT(INOUT) ::
77 . pla,epsd
78 my_real ,
DIMENSION(NEL,NUVAR),
INTENT(INOUT) ::
79 . uvar
80
81 TYPE(TTABLE), DIMENSION(NTABLE) :: TABLE
82
83
84
85 INTEGER I,K,II,NINDX,INDEX(NEL),NITER,ITER,NINDX2,INDEX2(NEL),
86 . ITAB,ISMOOTH,IPOS(NEL,2)
87
89 . young1,young2,nu12,nu21,g12,a11,a12,a21,a22,c1,
90 . deuxk,nu1p,nu2p,nu4p,nu5p,s01,a01,b01,c01,
91 . s02,a02,b02,c02,s03,a03,b03,c03,
92 . s04,a04,b04,c04,s05,a05,b05,c05,asig,bsig,csig,
93 . tau0,atau,btau,n3,n6,g23,g31
95 . normsig,h,dpdt,dlam,ddep,depxx,depyy
97 . normxx,normyy,normxy,normpxx,normpyy,normpxy,
98 . dphi_dlam,dfdsig2,dphi_dpla,dpxx,dpyy,dpxy,
99 . dphi_dsigy1,dphi_dsigy2,dphi_dsigy3,dphi_dsigy4,
100 . dphi_dsigy5
102 . normyz,normzx,dpsi_dlam,dpsi_dpla,
103 . dpyz,dpzx,dpsi_dsigys
105 . xscale1,yscale1,xscale2,yscale2,xscale3,yscale3,xscale4,yscale4,
106 . xscale5,yscale5,xscales,yscales,xvec(nel,2),asrate
107
109 . n1,n2,n4,n5
110
112 . khi1,khi2,khi3,khi4,khi5,khi6,sigy1,sigy2,sigy3,sigy4,sigy5,dpla2,
113 . dpla4,sigys,hardp,phi,psi,gam1,gam2,gam3,gam4,gam5,gam6,dsigy1_dp,
114 . dsigy2_dp,dsigy3_dp,dsigy4_dp,dsigy5_dp,dsigys_dp,hardr
115
116
117
118
119
120
121 young1 = uparam(1)
122 young2 = uparam(2)
123 nu12 = uparam(4)
124 nu21 = uparam(5)
125 a11 = uparam(6)
126 a12 = uparam(7)
127 a21 = uparam(8)
128 a22 = uparam(9)
129 g12 = uparam(10)
130 g23 = uparam(11)
131 g31 = uparam(12)
132 itab = int(uparam(14))
133 deuxk = uparam(15)
134 nu1p = uparam(18)
135 nu2p = uparam(19)
136 nu4p = uparam(20)
137 nu5p = uparam(21)
138 IF (itab == 0) THEN
139 s01 = uparam(22)
140 a01 = uparam(23)
141 b01 = uparam(24)
142 c01 = uparam(25)
143 s02 = uparam(26)
144 a02 = uparam(27)
145 b02 = uparam(28)
146 c02 = uparam(29)
147 s03 = uparam(30)
148 a03 = uparam(31)
149 b03 = uparam(32)
150 c03 = uparam(33)
151 s04 = uparam(34)
152 a04 = uparam(35)
153 b04 = uparam(36)
154 c04 = uparam(37)
155 s05 = uparam(38)
156 a05 = uparam(39)
157 b05 = uparam(40)
158 c05 = uparam(41)
159 asig = uparam(42)
160 bsig = uparam(43)
161 csig = uparam(44)
162 tau0 = uparam(45)
163 atau = uparam(46)
164 btau = uparam(47)
165 ELSE
166 xscale1 = uparam(22)
167 yscale1 = uparam(23)
168 xscale2 = uparam
169 yscale2 = uparam(25)
170 xscale3 = uparam(26)
171 yscale3 = uparam(27)
172 xscale4 = uparam(28)
173 yscale4 = uparam(29)
174 xscale5 = uparam(30)
175 yscale5 = uparam(31)
176 xscales = uparam(34)
177 yscales = uparam(35)
178 asrate = uparam(36)
179 asrate = (two*pi*asrate*timestep)/(two*pi*asrate*timestep + one)
180 ismooth = int(uparam(37))
181 ENDIF
182
183
184 n1(1) = one/(sqrt(one+nu1p**2))
185 n1(2) = -nu1p/(sqrt(one+nu1p**2))
186 n2(1) = -nu2p/(sqrt(one+nu2p**2))
187 n2(2) = one/(sqrt(one+nu2p**2))
188 n3 = one
189 n4(1) = -one/(sqrt(one+nu4p**2))
190 n4(2) = nu4p/(sqrt(one+nu4p**2))
191 n5(1) = nu5p/(sqrt(one+nu5p**2))
192 n5(2) = -one/(sqrt(one+nu5p**2))
193 n6 = -one
194
195
196 DO i=1,nel
197
198 IF (off(i) < 0.1) off(i) = zero
199 IF (off(i) < one) off(i) = off(i)*four_over_5
200
201 dpla(i) = zero
202 dpla2(i) = zero
203 dpla4(i) = zero
204 et(i) = one
205 hardp(i) = zero
206 ENDDO
207
208
209 IF (itab > 0) THEN
210
211 xvec(1:nel,1) = pla(1:nel,2)
212 xvec(1:nel,2) = epsd(1:nel,2) * xscale1
213
214 ipos(1:nel,1) = vartmp(1:nel,1)
215 ipos(1:nel,2) = 1
217 sigy1(1:nel) = sigy1(1:nel) * yscale1
218 dsigy1_dp(1:nel)= dsigy1_dp(1:nel) * yscale1
219 vartmp(1:nel,1) = ipos(1:nel,1)
220
221 xvec(1:nel,2) = epsd(1:nel,2) * xscale2
222 ipos(1:nel,1) = vartmp(1:nel,2)
223 ipos(1:nel,2) = 1
225 sigy2(1:nel) = sigy2(1:nel) * yscale2
226 dsigy2_dp(1:nel)= dsigy2_dp(1:nel)
227 vartmp(1:nel,2) = ipos(1:nel,1)
228
229 xvec(1:nel,2) = epsd(1:nel,2) * xscale3
230 ipos(1:nel,1) = vartmp(1:nel,3)
231 ipos(1:nel,2) = 1
233 sigy3(1:nel) = sigy3(1:nel) * yscale3
234 dsigy3_dp(1:nel)= dsigy3_dp(1:nel) * yscale3
235 vartmp(1:nel,3) = ipos(1:nel,1)
236
237 xvec(1:nel,2) = epsd(1:nel,2) * xscale4
238 ipos(1:nel,1) = vartmp(1:nel,4)
239 ipos(1:nel,2) = 1
241 sigy4(1:nel) = sigy4(1:nel) * yscale4
242 dsigy4_dp(1:nel)= dsigy4_dp(1:nel) * yscale4
243 vartmp(1:nel,4) = ipos(1:nel,1)
244
245 xvec(1:nel,2) = epsd(1:nel,2) * xscale5
246 ipos(1:nel,1) = vartmp(1:nel,5)
247 ipos(1:nel,2) = 1
249 sigy5(1:nel) = sigy5(1:nel) * yscale5
250 dsigy5_dp(1:nel)= dsigy5_dp(1:nel) * yscale5
251 vartmp(1:nel,5) = ipos(1:nel,1)
252 ! -> transverse shear tabulation with strain-rate
253 xvec(1:nel,1) = pla(1:nel,4)
254 xvec(1:nel,2) = epsd(1:nel,4) * xscales
255
256 ipos(1:nel,1) = vartmp(1:nel,7)
257 ipos(1:nel,2) = 1
259 sigys(1:nel) = sigys(1:nel) * yscales
260 dsigys_dp(1:nel)= dsigys_dp(1:nel) * yscales
261 vartmp(1:nel,7) = ipos(1:nel,1)
262 ELSE
263 DO i = 1,nel
264
265 sigy1(i) = s01 + a01*tanh(b01*pla(i,2)) + c01*pla(i,2)
266
267 sigy2(i) = s02 + a02*tanh(b02*pla(i,2)) + c02*pla(i,2)
268
269 sigy3(i) = s03 + a03*tanh(b03*pla(i,2)) + c03*pla(i,2)
270
271 sigy4(i) = s04 + a04*tanh(b04*pla(i,2)) + c04*pla(i,2)
272
273 sigy5(i) = s05 + a05*tanh(b05*pla(i,2)) + c05*pla
274
275 sigys(i) = tau0 + atau*pla
276 ENDDO
277 ENDIF
278
279
280
281
282 DO i=1,nel
283
284
285 signxx(i) = sigoxx(i) + a11*depsxx(i) + a12*depsyy(i)
286 signyy(i) = sigoyy(i) + a21*depsxx(i) + a22*depsyy(i)
287 signxy(i) = sigoxy(i) + depsxy(i)*g12
288 signyz(i) = sigoyz(i) + depsyz(i
289 signzx(i) = sigozx(i) + depszx(i)*g31*shf(i)
290
291
292 khi1(i) = zero
293 khi2(i) = zero
294 khi3(i) = zero
295 khi4(i) = zero
296 khi5(i) = zero
297 khi6(i) = zero
298 IF ((n1(1)*signxx(i)+n1(2)*signyy(i)) > zero) khi1(i) = one
299 IF ((n2(1)*signxx(i)+n2(2)*signyy(i)) > zero) khi2(i) = one
300 IF (n3*signxy(i) > zero) khi3(i) = one
301 IF ((n4(1)*signxx(i)+n4(2)*signyy(i)) > zero) khi4(i) = one
302 IF ((n5(1)*signxx(i)+n5(2)*signyy(i)) > zero) khi5(i) = one
303 IF (n6*signxy(i) > zero) khi6(i) = one
304
305
306 gam1(i) = (n1(1)*signxx(i)+n1(2)*signyy(i))/sigy1(i)
307 gam2(i) = (n2(1)*signxx(i)+n2(2)*signyy(i))/sigy2(i)
308 gam3(i) = n3*signxy(i)/sigy3(i)
309 gam4(i) = (n4(1)*signxx(i)+n4(2)*signyy(i))/sigy4(i)
310 gam5(i) = (n5(1)*signxx(i)+n5(2)*signyy(i))/sigy5(i)
311 gam6(i) = n6*signxy(i)/sigy3(i)
312 phi(i) = khi1(i)*gam1(i)**deuxk + khi2(i)*gam2(i)**deuxk +
313 . khi3(i)*gam3(i)**deuxk + khi4(i)*gam4(i)**deuxk +
314 . khi5(i)*gam5(i)**deuxk + khi6(i)*gam6(i)**deuxk - one
315
316
317 psi(i) = (sqrt(signyz(i)**2 + signzx(i)**2)/(sigys(i))) - one
318
319 ENDDO
320
321
322
323
324
325
326 nindx = 0
327 nindx2 = 0
328 DO i=1,nel
329
330 IF (phi(i) > zero .AND. off(i) == one) THEN
331 nindx=nindx+1
332 index(nindx)=i
333 ENDIF
334
335 IF (psi(i) > zero .AND. off(i) == one) THEN
336 nindx2=nindx2+1
337 index2(nindx2)=i
338 ENDIF
339 ENDDO
340
341
342
343
344
345
346 niter = 3
347
348
349 DO iter = 1, niter
350#include "vectorize.inc"
351
352 DO ii=1,nindx
353 i = index(ii)
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369 normxx = deuxk
370 . deuxk*khi2(i)*(gam2(i)**(deuxk-1))*(n2(1)/sigy2(i)) +
371 . deuxk*khi4(i)*(gam4(i)**(deuxk-1))*(n4(1)/sigy4(i)) +
372 . deuxk*khi5(i)*(gam5(i)**(deuxk-1))*(n5(1)/sigy5(i))
373 normyy = deuxk*khi1(i)*(gam1(i
374 . deuxk*khi2(i)*(gam2(i)**(deuxk-1))*(n2(2)/sigy2(i)
375 . deuxk*khi4(i)*(gam4(i)**(deuxk-1))*(n4(2)/sigy4(i)) +
376 . deuxk*khi5(i)*(gam5(i)**(deuxk-1))*(n5(2)/sigy5(i))
377 normxy = deuxk/two*khi3(i)*(gam3(i)**(deuxk-1))*(n3/sigy3(i)) +
378 . deuxk/two*khi6(i)*(gam6(i)**(deuxk-1))*(n6
379
380
381
382 normsig = sqrt(normxx**2 + normyy**2 + two*normxy**2)
383 normsig =
max(normsig,em20)
384 normpxx = normxx/normsig
385 normpyy = normyy/normsig
386
387
388
389
390
391
392
393 dfdsig2 = normxx * (a11*normpxx + a12*normpyy)
394 . + normyy * (a21*normpxx + a22*normpyy)
395 . + two*normxy * two*normpxy * g12
396
397
398
399
400
401 dphi_dsigy1 = deuxk*khi1(i)*(gam1(i
402 dphi_dsigy2 = deuxk*khi2(i)*(gam2(i)**(deuxk-1))*(-(n2(1)*signxx(i)+n2(2)*signyy(i))/(sigy2(i)**2))
403 dphi_dsigy3 = deuxk*khi3(i)*(gam3(i)**(deuxk-1))*(-n3*signxy(i)/(sigy3(i)**2)) +
404 . deuxk*khi6(i)*(gam6(i)**(deuxk-1))*(-n6*signxy(i)/(sigy3(i)**2))
405 dphi_dsigy4 = deuxk*khi4
406 dphi_dsigy5 = deuxk*khi5(i)*(gam5(i)**(deuxk-1))*(-(n5(1)*signxx(i)+n5(2)*signyy(i))/(sigy5(i)**2))
407
408 IF (itab == 0) THEN
409 dsigy1_dp(i) = a01*b01*(one-(tanh(b01*pla(i,2)))**2) + c01
410 dsigy2_dp(i) = a02*b02*(one-(tanh(b02*pla(i,2)))**2) + c02
411 dsigy3_dp(i) = a03*b03*(one-(tanh(b03*pla(i,2)))**2) + c03
412 dsigy4_dp(i) = a04*b04*(one-(tanh(b04*pla(i,2)))**2) + c04
413 dsigy5_dp(i) = a05*b05*(one-(tanh(b05*pla(i,2)))**2) + c05
414 ENDIF
415
416 hardp(i) = sqrt(dsigy1_dp(i)**2 + dsigy2_dp(i)**2 +
417 . two*dsigy3_dp(i)**2 + dsigy4_dp(i)**2 +
418 . dsigy5_dp(i)**2)
419 dphi_dpla = dphi_dsigy1*dsigy1_dp(i) + dphi_dsigy2*dsigy2_dp
420 . dphi_dsigy3*dsigy3_dp(i) + dphi_dsigy4*dsigy4_dp(i) +
421 . dphi_dsigy5*dsigy5_dp(i)
422
423
424 dphi_dlam = -dfdsig2 + dphi_dpla
425 dphi_dlam = sign(
max(abs(dphi_dlam),em20),dphi_dlam)
426
427
428
429
430
431 dlam = -phi(i) / dphi_dlam
432
433
434 dpxx = dlam * normpxx
435 dpyy = dlam * normpyy
436 dpxy = two * dlam * normpxy
437
438
439 signxx(i) = signxx(i) - (a11*dpxx + a12*dpyy)
440 signyy(i) = signyy(i) - (a21*dpxx + a22*dpyy)
441 signxy(i) = signxy(i) - g12*dpxy
442
443
444 ddep = dlam
445 dpla2(i) =
max(zero, dpla2(i) + ddep)
446 pla(i,2) = pla(i,2) + ddep
447
448
449 IF (itab == 0) THEN
450
451 sigy1(i) = s01 + a01*tanh(b01*pla(i,2)) + c01*pla(i,2)
452
453 sigy2(i) = s02 + a02*tanh(b02*pla(i,2)) + c02*pla(i,2)
454
455 sigy3(i) = s03 + a03*tanh
456
457 sigy4(i) = s04 + a04*tanh(b04*pla(i,2)) + c04*pla(i,2)
458
459 sigy5(i) = s05 + a05*tanh(b05*pla(i,2)) + c05*pla(i,2)
460 ENDIF
461
462
463 khi1(i) = zero
464 khi2(i) = zero
465 khi3(i) = zero
466 khi4(i) = zero
467 khi5(i) = zero
468 khi6(i) = zero
469 IF ((n1(1)*signxx(i)+n1(2)*signyy(i)) > zero) khi1(i) = one
470 IF ((n2(1)*signxx(i)+n2(2)*signyy(i)) > zero) khi2(i) = one
471 IF (n3*signxy(i) > zero) khi3(i) = one
472 IF ((n4(1)*signxx(i)+n4(2)*signyy(i)) > zero) khi4(i) = one
473 IF ((n5(1)*signxx(i)+n5(2)*signyy(i)) > zero) khi5(i) = one
474 IF (n6*signxy(i) > zero) khi6(i) = one
475
476
477 IF (itab == 0) THEN
478 gam1(i) = (n1(1)*signxx(i)+n1(2)*signyy(i))/sigy1(i)
479 gam2(i) = (n2(1)*signxx(i)+n2(2)*signyy(i))/sigy2(i)
480 gam3(i) = n3*signxy(i)/sigy3(i)
481 gam4(i) = (n4(1)*signxx(i)+n4(2)*signyy(i))/sigy4(i)
482 gam5(i) = (n5(1)*signxx(i)+n5(2)*signyy(i))/sigy5(i)
483 gam6(i) = n6*signxy(i)/sigy3(i)
484 phi(i) = khi1(i)*gam1(i)**deuxk + khi2(i)*gam2(i)**deuxk +
485 . khi3(i)*gam3(i)**deuxk + khi4(i)*gam4(i)**deuxk +
486 . khi5(i)*gam5(i)**deuxk + khi6(i)*gam6(i)**deuxk - one
487 ENDIF
488
489 ENDDO
490
491
492
493 IF (itab > 0) THEN
494 IF (nindx > 0) THEN
495
496 xvec(1:nel,1) = pla(1:nel,2)
497 xvec(1:nel,2) = epsd(1:nel,2) * xscale1
498
499 ipos(1:nel,1) = vartmp(1:nel,1)
500 ipos(1:nel,2) = 1
502 sigy1(1:nel) = sigy1(1:nel) * yscale1
503 dsigy1_dp(1:nel)= dsigy1_dp(1:nel) * yscale1
504 vartmp(1:nel,1) = ipos(1:nel,1)
505
506 xvec(1:nel,2) = epsd(1:nel,2) * xscale2
507 ipos(1:nel,1) = vartmp(1:nel,2)
508 ipos(1:nel,2) = 1
510 sigy2(1:nel) = sigy2(1:nel) * yscale2
511 dsigy2_dp(1:nel)= dsigy2_dp(1:nel) * yscale2
512 vartmp(1:nel,2) = ipos(1:nel,1)
513
514 xvec(1:nel,2) = epsd(1:nel,2) * xscale3
515 ipos(1:nel,1) = vartmp(1:nel,3)
516 ipos(1:nel,2) = 1
518 sigy3(1:nel) = sigy3(1:nel) * yscale3
519 dsigy3_dp(1:nel)= dsigy3_dp(1:nel) * yscale3
520 vartmp(1:nel,3) = ipos(1:nel,1)
521
522 xvec(1:nel,2) = epsd(1:nel,2) * xscale4
523 ipos(1:nel,1) = vartmp(1:nel,4)
524 ipos(1:nel,2) = 1
526 sigy4(1:nel) = sigy4(1:nel) * yscale4
527 dsigy4_dp(1:nel)= dsigy4_dp(1:nel) * yscale4
528 vartmp(1:nel,4) = ipos(1:nel,1)
529
530 xvec(1:nel,2) = epsd(1:nel,2) * xscale5
531 ipos(1:nel,1) = vartmp(1:nel,5)
532 ipos(1:nel,2) = 1
534 sigy5(1:nel) = sigy5(1:nel) * yscale5
535 dsigy5_dp(1:nel)= dsigy5_dp(1:nel) * yscale5
536 vartmp(1:nel,5) = ipos(1:nel,1)
537
538#include "vectorize.inc"
539 DO ii=1,nindx
540 i = index(ii)
541 gam1(i) = (n1(1)*signxx(i)+n1(2)*signyy(i))/sigy1(i)
542 gam2(i) = (n2(1)*signxx(i)+n2(2)*signyy(i))/sigy2(i)
543 gam3(i) = n3*signxy(i)/sigy3(i)
544 gam4(i) = (n4(1)*signxx
545 gam5(i) = (n5(1)*signxx(i)+n5(2)*signyy(i))/sigy5(i)
546 gam6(i) = n6*signxy(i)/sigy3(i)
547 phi(i) = khi1(i)*gam1(i)**deuxk
548 . khi3(i)*gam3(i)**deuxk + khi4(i)*gam4(i)**deuxk +
549 . khi5(i)*gam5(i)**deuxk + khi6(i)*gam6(i)**deuxk - one
550 ENDDO
551 ENDIF
552 ENDIF
553 ENDDO
554
555
556
557
558
559
560
561
562
563
564 DO iter = 1, niter
565#include "vectorize.inc"
566
567 DO ii=1,nindx2
568 i = index2(ii)
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584 normyz = signyz(i)/(sqrt(signyz(i)**2 + signzx(i)**2)*sigys(i))
585 normzx = signzx(i)/(sqrt(signyz(i)**2 + signzx(i)**2)*sigys(i))
586
587
588
589
590
591
592 dfdsig2 = two*normyz * g23*shf(i) * two*normyz +
593 . two*normzx * g31*shf(i) * two*normzx
594
595
596
597
598
599 dpsi_dsigys = -sqrt(signyz(i)**2 + signzx(i)**2)/(sigys(i)**2)
600
601 IF (itab == 0) dsigys_dp(i) = atau
602
603 dpsi_dpla = dpsi_dsigys*dsigys_dp(i)
604
605
606 dpsi_dlam = -dfdsig2 + dpsi_dpla
607 dpsi_dlam = sign(
max(abs(dpsi_dlam),em20),dpsi_dlam)
608
609
610
611
612
613 dlam = - psi(i) / dpsi_dlam
614
615
616 dpyz = two*dlam * normyz
617 dpzx = two*dlam * normzx
618
619
620 signyz(i) = signyz(i) - g23*shf(i)*dpyz
621 signzx(i) = signzx(i) - g31*shf(i)*dpzx
622
623
624 ddep = dlam
625 pla(i,4) = pla(i,4) + ddep
626
627
628 IF (itab == 0) THEN
629
630 sigys(i) = tau0 + atau*pla(i,4)
631
632 psi(i) = (sqrt(signyz(i)**2 + signzx
633 ENDIF
634
635 ENDDO
636
637
638
639 IF (itab > 0) THEN
640 IF (nindx2 > 0) THEN
641
642 xvec(1:nel,1) = pla(1:nel,4)
643 xvec(1:nel,2) = epsd(1:nel,4) * xscales
644
645 ipos(1:nel,1) = vartmp(1:nel,7)
646 ipos(1:nel,2) = 1
648 sigys(1:nel) = sigys(1:nel) * yscales
649 dsigys_dp(1:nel)= dsigys_dp(1:nel) * yscales
650 vartmp(1:nel,7) = ipos(1:nel,1)
651
652#include "vectorize.inc"
653 DO ii=1,nindx2
654 i = index2(ii)
655 psi(i) = (sqrt(signyz(i)**2 + signzx(i)**2)/sigys(i)) - one
656 ENDDO
657 ENDIF
658 ENDIF
659
660 ENDDO
661
662
663
664
665
666
667 DO i=1,nel
668
669 pla(i,1) = sqrt(pla(i,2)**2 + pla(i,4)**2)
670 dpla(i) = (pla(i,2)/(
max(sqrt(pla(i,2)**2 + pla(i,4)**2),em20)))*dpla2(i) +
671 . (pla(i,4)/(
max(sqrt(pla(i,2)**2 + pla(i,4)**2),em20)))*dpla4(i)
672
673 IF (itab == 0) THEN
674 epsd(i,1) = dpla(i) /
max(em20,timestep)
675 epsd(i,2) = dpla2(i) /
max(em20,timestep)
676 epsd(i,4) = dpla4(i) /
max(em20,timestep)
677 ELSE
678 dpdt = dpla(i)/
max(em20,timestep)
679 epsd(i,1) = asrate * dpdt + (one - asrate) * epsd(i,1)
680 dpdt = dpla2(i)/
max(em20,timestep)
681 epsd(i,2) = asrate * dpdt + (one - asrate) * epsd(i,2)
682 dpdt = dpla4(i)/
max(em20,timestep)
683 epsd(i,4) = asrate * dpdt + (one - asrate) * epsd(i,4)
684 ENDIF
685
686 IF (dpla(i) > zero) THEN
687 et(i) = hardp(i) / (hardp(i) +
max(young1,young2))
688 ELSE
689 et(i) = one
690 ENDIF
691
692 soundsp(i) = sqrt(
max(a11,a12,a21,a22,g12,g23,g31)/ rho(i))
693
694 sigy(i) = sqrt(sigy1(i)**2 + sigy2(i)**2 + sigy4(i)**2 +
695 . sigy5(i)**2 + two*sigy3(i)**2 + two*sigys(i)**2)
696 ENDDO
697