46
47
48
49
50#include "implicit_f.inc"
51#include "scr05_c.inc"
52
53
54
55#include "mvsiz_p.inc"
56#include "com01_c.inc"
57
58
59
60 INTEGER NEL, NUPARAM, NUVAR
62 . time , timestep , uparam(nuparam),
63 . rho(nel), rho0(nel), volume(nel), eint(nel),
64 . epspxx(nel), epspyy(nel), epspzz(nel),
65 . epspxy(nel), epspyz(nel), epspzx(nel),
66 . depsxx(nel), depsyy(nel), depszz(nel),
67 . depsxy(nel), depsyz(nel), depszx(nel),
68 . epsxx(nel), epsyy(nel), epszz(nel),
69 . epsxy(nel), epsyz(nel), epszx(nel),
70 . sigoxx(nel), sigoyy(nel), sigozz(nel),
71 . sigoxy(nel), sigoyz(nel), sigozx(nel)
72
73
74
76 . signxx(nel), signyy(nel), signzz(nel),
77 . signxy(nel), signyz(nel), signzx(nel),
78 . sigvxx(nel), sigvyy(nel), sigvzz(nel),
79 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
80 . soundsp(nel), viscmax(nel)
81
82
83
84 my_real uvar(nel,nuvar), off(nel)
85
86
87
88 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
90 EXTERNAL finter
91
92
93
94 INTEGER I,,K,L,NROT,KEN
95 INTEGER VPVEC,ICASE
97 . ey,c1,c2,et,vmu,vmu0
98 . , a,b,c,d,var
99 . , axx,bxx,cxx,ayy,byy,cyy,azz,bzz,czz
100 . , axy,bxy,cxy,ayz,byz,cyz,azx,bzx,czx
101 . , c1xx,c2xx,etxx,vmuxx, c1yy,c2yy,etyy,vmuyy
102 . , c1xy,c2xy,gtxy,vmuxy, c1yz,c2yz,gtyz,vmuyz
103 . , c1zx,c2zx,gtzx,vmuzx, p0,phi,gama0,fac,fac1
104 . , s(3,3),sigpr(3),dirpr(3,3)
105 . , c1zz,c2zz,etzz,vmuzz,sigt_cutoff,sigc_cutoff
107 . e(mvsiz),edot(mvsiz),dav,e1,e2,e3,e4,e5,e6,epsp
108 . , epet(mvsiz),emet(mvsiz),epets(mvsiz),emets(mvsiz)
109 . , emxx(mvsiz),emyy(mvsiz),emzz(mvsiz)
110 . , gmxy(mvsiz),gmyz(mvsiz),gmzx(mvsiz)
111 . , epetxx(mvsiz),epetyy(mvsiz),epetzz(mvsiz)
112 . , emetxx(mvsiz),emetyy(mvsiz),emetzz(mvsiz)
113 . , gpgtxy(mvsiz),gpgtyz(mvsiz),gpgtzx(mvsiz)
114 . , gmgtxy(mvsiz),gmgtyz(mvsiz),gmgtzx(mvsiz)
115 . , syxx(mvsiz),syyy(mvsiz),syzz(mvsiz)
116 . , syxy(mvsiz),syyz(mvsiz),syzx(mvsiz)
117 . , sigair(mvsiz),gama(mvsiz),syield(mvsiz)
118 . , sigsxx(mvsiz),sigsyy(mvsiz),sigszz(mvsiz)
119 . , sigsxy(mvsiz),sigsyz(mvsiz),sigszx(mvsiz)
120 . , dexx(mvsiz),deyy(mvsiz),dezz(mvsiz)
121 . , dexy(mvsiz),deyz(mvsiz),dezx(mvsiz)
122 . , dedtxx(mvsiz),dedtyy(mvsiz),dedtzz(mvsiz)
123 . , dedtxy(mvsiz),dedtyz(mvsiz),dedtzx(mvsiz)
124 . , dsdtxx(mvsiz),dsdtyy(mvsiz),dsdtzz(mvsiz)
125 . , dsdtxy(mvsiz),dsdtyz(mvsiz),dsdtzx(mvsiz)
126
128 . sigv(mvsiz,6), sigprv(mvsiz,3), dirprv(mvsiz,3,3)
129
130
131
132
133
134 IF(isigi == 0) THEN
135 IF(time==zero) THEN
136 DO 1000 j=1,nuvar
137 DO 1000 i=1,nel
138 uvar(i,j)=zero
139 1000 CONTINUE
140 ENDIF
141 ENDIF
142
143 ken = uparam(1)
144 ey = uparam(2)
145 a = uparam(3)
146 b = uparam(4)
147 c = uparam(5)
148 p0 = uparam(6)
149 phi = uparam(7)
150 gama0 = uparam(8)
151
152 vpvec = 0
153
154 DO 900 i=1,nel
155 gama(i) = rho0(i)/rho(i)-one+gama0
156 var = -(p0*gama(i))/(one+gama(i)-phi+em15)
157 sigair(i) =
max(zero,var)
158 900 CONTINUE
159 icase = abs(ken) + 1
160 SELECT CASE (icase)
161
162 CASE(1)
163
164 fac = uparam(9)
165 fac1 = uparam(10)
166
167 DO 100 i=1,nel
168 IF(ifunc(1)/=0) THEN
169 syield(i)=fac*finter(ifunc(1),gama(i),npf,tf,b*c)
170 ELSE
171 syield(i) = abs(a+b*(one+c*gama(i)))
172 ENDIF
173 IF(ifunc(2)/=0)THEN
174 dav = (epspxx(i)+epspyy(i)+epspzz(i))*third
175 e1 = epspxx(i) - dav
176 e2 = epspyy(i) - dav
177 e3 = epspzz(i) - dav
178 e4 = half*epspxy(i)
179 e5 = half*epspyz(i)
180 e6 = half*epspzx(i)
181 epsp =half*(e1**2+e2**2+e3**2) +e4**2+e5**2+e6**2
182 epsp = sqrt(three*epsp)/three_half
183 syield(i) = fac1*syield(i)*(finter(ifunc(2),epsp,npf,tf,b*c))
184 ENDIF
185 100 CONTINUE
186
187 DO 110 i=1,nel
188 sigsxx(i)=sigoxx(i)+sigair(i)
189 sigsyy(i)=sigoyy(i)+sigair(i)
190 sigszz(i)=sigozz(i)+sigair(i)
191 sigsxy(i)=sigoxy(i)
192 sigsyz(i)=sigoyz(i)
193 sigszx(i)=sigozx(i)
194 110 CONTINUE
195
196
197 DO 120 i=1,nel
198 sigsxx(i)=sigsxx(i)+ey*epspxx(i)*timestep
199 sigsyy(i)=sigsyy(i)+ey*epspyy(i)*timestep
200 sigszz(i)=sigszz(i)+ey*epspzz(i)*timestep
201 sigsxy(i)=sigsxy(i)+ey*epspxy(i)*timestep*half
202 sigsyz(i)=sigsyz(i)+ey*epspyz(i)*timestep*half
203 sigszx(i)=sigszx(i)+ey*epspzx(i)*timestep*half
204 120 CONTINUE
205
206 IF (vpvec==1) THEN
207 DO 130 i=1,nel
208 s(1,1)=sigsxx(i)
209 s(2,1)=sigsxy(i)
210 s(2,2)=sigsyy(i)
211 s(3,1)=sigszx(i)
212 s(3,2)=sigsyz(i)
213 s(3,3)=sigszz(i)
214
215
217
218
219 sigpr(1)=
min(syield(i),abs(sigpr(1)))*sign(one,sigpr(1))
220 sigpr(2)=
min(syield(i),abs(sigpr(2)))*sign(one,sigpr(2))
221 sigpr(3)=
min(syield(i),abs(sigpr(3)))*sign(one,sigpr(3))
222
223
224 DO 131 k=1,3
225 DO 131 l=1,3
226 s(k,l)=zero
227 IF(k==l) s(k,l)= sigpr(k)
228 131 CONTINUE
229 CALL dreh(s,dirpr,1,1,1)
230
231 sigsxx(i)=s(1,1)
232 sigsxy(i)=s(2,1)
233 sigsyy(i)=s(2,2)
234 sigszx(i)=s(3,1)
235 sigsyz(i)=s(3,2)
236 sigszz(i)=s(3,3)
237 130 CONTINUE
238
239
240 ELSE
241 DO i = 1, nel
242 sigv(i,1) = sigsxx(i)
243 sigv(i,2) = sigsyy(i)
244 sigv(i,3) = sigszz(i)
245 sigv(i,4) = sigsxy(i)
246 sigv(i,5) = sigsyz(i)
247 sigv(i,6) = sigszx(i)
248 ENDDO
249
250 IF (iresp==1) THEN
252 ELSE
254 ENDIF
255 DO i = 1, nel
256
257 sigprv(i,1)=sign(
min(syield(i),abs(sigprv(i,1))),sigprv(i,1))
258 sigprv(i,2)=sign(
min(syield(i),abs(sigprv(i,2))),sigprv(i,2))
259 sigprv(i,3)=sign(
min(syield(i),abs(sigprv(i,3))),sigprv(i,3))
260
261 sigsxx(i) = dirprv(i,1,1)*dirprv(i,1,1)*sigprv(i,1)
262 . + dirprv(i,1,2)*dirprv(i,1,2)*sigprv(i,2)
263 . + dirprv(i,1,3)*dirprv(i,1,3)*sigprv(i,3)
264 sigsyy(i) = dirprv(i,2,2)*dirprv(i,2,2)*sigprv(i,2)
265 . + dirprv(i,2,3)*dirprv(i,2,3)*sigprv(i,3)
266 . + dirprv(i,2,1)*dirprv(i,2,1)*sigprv(i,1)
267 sigszz(i) = dirprv(i,3,3)*dirprv(i,3,3)*sigprv(i,3)
268 . + dirprv(i,3,1)*dirprv(i,3,1)*sigprv(i,1)
269 . + dirprv(i,3,2)*dirprv(i,3,2)*sigprv(i,2)
270 sigsxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*sigprv(i,1)
271 . + dirprv(i,1,2)*dirprv(i,2,2)*sigprv(i,2)
272 . + dirprv(i,1,3)*dirprv(i,2,3)*sigprv(i,3)
273 sigsyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*sigprv(i,2)
274 . + dirprv(i,2,3)*dirprv(i,3,3)*sigprv(i,3)
275 . + dirprv(i,2,1)*dirprv(i,3,1)*sigprv(i,1)
276 sigszx(i) = dirprv(i,3,3)*dirprv(i,1,3)*sigprv(i,3)
277 . + dirprv(i,3,1)*dirprv(i,1,1)*sigprv(i,1)
278 . + dirprv(i,3,2)*dirprv(i,1,2)*sigprv(i,2)
279 ENDDO
280 ENDIF
281
282
283 DO 140 i=1,nel
284 signxx(i)=off(i)*sigsxx(i)-sigair(i)
285 signyy(i)=off(i)*sigsyy(i)-sigair(i)
286 signzz(i)=off(i)*sigszz(i)-sigair(i)
287 signxy(i)=off(i)*sigsxy(i)
288 signyz(i)=off(i)*sigsyz(i)
289 signzx(i)=off(i)*sigszx(i)
290
291 soundsp(i)=sqrt(ey/rho0(i))
292 140 CONTINUE
293
294
295 CASE(2)
296
297 c1 = uparam(9)
298 c2 = uparam(10)
299 et = uparam(11)
300 vmu = uparam(12)
301 vmu0 = uparam(13)
302 fac = uparam(14)
303 fac1 = uparam(15)
304
305
306 DO 200 i=1,nel
308 & abs(epspxx(i)),abs(epspyy(i)),abs(epspzz(i)),
309 & abs(epspxy(i)),abs(epspyz(i)),abs(epspzx(i)))
310 e(i)=c1*edot(i)+c2
312 epet(i)=(e(i)+et)/vmu
313 emet(i)=(e(i)*et)/vmu
314 epets(i)=(e(i)+et)/vmu0
315 emets(i)=two*(e(i)*et)/vmu0
316 200 CONTINUE
317
318
319 DO 210 i=1,nel
320 IF(ifunc(1)/=0) THEN
321 syield(i)=fac*finter(ifunc(1),gama(i),npf,tf,b*c)
322 ELSE
323 syield(i) = abs(a+b*(one+c*gama(i)))
324 ENDIF
325 IF(ifunc(2)/=0)THEN
326 dav = (epspxx(i)+epspyy(i)+epspzz(i))*third
327 e1 = epspxx(i) - dav
328 e2 = epspyy(i) - dav
329 e3 = epspzz(i) - dav
330 e4 = half*epspxy(i)
331 e5 = half*epspyz(i)
332 e6 = half*epspzx(i)
333 epsp =half*(e1**2+e2**2+e3**2) +e4**2+e5**2+e6**2
334 epsp = sqrt(three*epsp)/three_half
335 syield(i) = fac1*syield(i)*(finter(ifunc(2),epsp,npf,tf,b*c))
336 ENDIF
337 210 CONTINUE
338
339 DO 220 i=1,nel
340 sigsxx(i)=sigoxx(i)+sigair(i)
341 sigsyy(i)=sigoyy(i)+sigair(i)
342 sigszz(i)=sigozz(i)+sigair(i)
343 sigsxy(i)=sigoxy(i)
344 sigsyz(i)=sigoyz(i)
345 sigszx(i)=sigozx(i)
346
347 dexx(i)=epsxx(i)
348 deyy(i)=epsyy(i)
349 dezz(i)=epszz(i)
350 dexy(i)=epsxy(i)* half
351 deyz(i)=epsyz(i)* half
352 dezx(i)=epszx(i)* half
353
354 dedtxx(i)=epspxx(i)
355 dedtyy(i)=epspyy(i)
356 dedtzz(i)=epspzz(i)
357 dedtxy(i)=epspxy(i) * half
358 dedtyz(i)=epspyz(i) * half
359 dedtzx(i)=epspzx(i) * half
360 220 CONTINUE
361
362 DO 230 i=1,nel
363 dsdtxx(i)=e(i)*dedtxx(i)-epet(i)*sigsxx(i)+emet(i)*dexx(i)
364 dsdtyy(i)=e(i)*dedtyy(i)-epet(i)*sigsyy(i)+emet(i)*deyy(i)
365 dsdtzz(i)=e(i)*dedtzz(i)-epet(i)*sigszz(i)+emet(i)*dezz(i)
366 dsdtxy(i)=e(i)*dedtxy(i)-epets(i)*sigsxy(i)+emets(i)*dexy(i)
367 dsdtyz(i)=e(i)*dedtyz(i)-epets(i)*sigsyz(i)+emets(i)*deyz(i)
368 dsdtzx(i)=e(i)*dedtzx(i)-epets(i)*sigszx(i)+emets(i)*dezx(i)
369 230 CONTINUE
370
371
372 DO 240 i=1,nel
373 sigsxx(i)=sigsxx(i)+dsdtxx(i)*timestep
374 sigsyy(i)=sigsyy(i)+dsdtyy(i)*timestep
375 sigszz(i)=sigszz(i)+dsdtzz(i)*timestep
376 sigsxy(i)=sigsxy(i)+dsdtxy(i)*timestep
377 sigsyz(i)=sigsyz(i)+dsdtyz(i)*timestep
378 sigszx(i)=sigszx(i)+dsdtzx(i)*timestep
379 240 CONTINUE
380 IF(ken<0)GOTO 255
381
382
383 IF (vpvec==1) THEN
384 DO 250 i=1,nel
385 s(1,1)=sigsxx(i)
386 s(2,1)=sigsxy(i)
387 s(2,2)=sigsyy(i)
388 s(3,1)=sigszx(i)
389 s(3,2)=sigsyz(i)
390 s(3,3)=sigszz(i)
391
392
394
395
396 sigpr(1)=
min(syield(i),abs(sigpr(1)))*sign(one,sigpr(1))
397 sigpr(2)=
min(syield(i),abs(sigpr(2)))*sign(one,sigpr(2))
398 sigpr(3)=
min(syield(i),abs(sigpr(3)))*sign(one,sigpr(3))
399
400
401 DO 251 k=1,3
402 DO 251 l=1,3
403 s(k,l)=zero
404 IF(k==l) s(k,l)= sigpr(k)
405 251 CONTINUE
406 CALL dreh(s,dirpr,1,1,1)
407
408 sigsxx(i)=s(1,1)
409 sigsxy(i)=s(2,1)
410 sigsyy(i)=s(2,2)
411 sigszx(i)=s(3,1)
412 sigsyz(i)=s(3,2)
413 sigszz(i)=s(3,3)
414 250 CONTINUE
415 ELSE
416
417 DO i = 1, nel
418 sigv(i,1) = sigsxx(i)
419 sigv(i,2) = sigsyy(i)
420 sigv(i,3) = sigszz(i)
421 sigv(i,4) = sigsxy(i)
422 sigv(i,5) = sigsyz(i)
423 sigv(i,6) = sigszx(i)
424 ENDDO
426 DO i = 1, nel
427
428 sigprv(i,1)=sign(
min(syield(i),abs(sigprv(i,1))),sigprv(i,1))
429 sigprv(i,2)=sign(
min(syield(i),abs(sigprv(i,2))),sigprv(i,2))
430 sigprv(i,3)=sign(
min(syield(i),abs(sigprv(i,3))),sigprv(i,3))
431
432 sigsxx(i) = dirprv(i,1,1)*dirprv(i,1,1)*sigprv(i,1)
433 . + dirprv(i,1,2)*dirprv(i,1,2)*sigprv(i,2)
434 . + dirprv(i,1,3)*dirprv(i,1,3)*sigprv(i,3)
435 sigsyy(i) = dirprv(i,2,2)*dirprv(i,2,2)*sigprv(i,2)
436 . + dirprv(i,2,3)*dirprv(i,2,3)*sigprv(i,3)
437 . + dirprv(i,2,1)*dirprv(i,2,1)*sigprv(i,1)
438 sigszz(i) = dirprv(i,3,3)*dirprv(i,3,3)*sigprv(i,3)
439 . + dirprv(i,3,1)*dirprv(i,3,1)*sigprv(i,1)
440 . + dirprv(i,3,2)*dirprv(i,3,2)*sigprv(i,2)
441 sigsxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*sigprv(i,1)
442 . + dirprv(i,1,2)*dirprv(i,2,2)*sigprv(i,2)
443 . + dirprv(i,1,3)*dirprv(i,2,3)*sigprv(i,3)
444 sigsyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*sigprv(i,2)
445 . + dirprv(i,2,3)*dirprv(i,3,3)*sigprv(i,3)
446 . + dirprv(i,2,1)*dirprv(i,3,1)*sigprv(i,1)
447 sigszx(i) = dirprv(i,3,3)*dirprv(i,1,3)*sigprv(i,3)
448 . + dirprv(i,3,1)*dirprv(i,1,1)*sigprv(i,1)
449 . + dirprv(i,3,2)*dirprv(i,1,2)*sigprv(i,2)
450 ENDDO
451 ENDIF
452
453 255 CONTINUE
454
455 DO 260 i=1,nel
456 signxx(i)=off(i)*sigsxx(i)-sigair(i)
457 signyy(i)=off(i)*sigsyy(i)-sigair(i)
458 signzz(i)=off(i)*sigszz(i)-sigair(i)
459 signxy(i)=off(i)*sigsxy(i)
460 signyz(i)=off(i)*sigsyz(i)
461 signzx(i)=off(i)*sigszx(i)
462
463 soundsp(i)=sqrt(e(i)/rho0(i))
464 260 CONTINUE
465
466 CASE(3)
467
468 fac = uparam(9)
469 fac1 = uparam(10)
470 sigt_cutoff = uparam(11)
471 sigc_cutoff = sigt_cutoff
472 DO i=1,nel
473 IF(ifunc(1)/=0) THEN
474 syield(i)=fac*finter(ifunc(1),gama(i),npf,tf,b*c)
475 ELSE
476 syield(i) = abs(a+b*(one+c*gama(i)))
477 ENDIF
478 IF(gama(i) > zero .AND. (gama(i)-uvar(i,1)) < zero) sigc_cutoff = zero
479 IF(ifunc(2)/=0)THEN
480 dav = (epspxx(i)+epspyy(i)+epspzz(i))*third
481 e1 = epspxx(i) - dav
482 e2 = epspyy(i) - dav
483 e3 = epspzz(i) - dav
484 e4 = half*epspxy(i)
485 e5 = half*epspyz(i)
486 e6 = half*epspzx(i)
487 epsp =half*(e1**2+e2**2+e3**2) +e4**2+e5**2+e6**2
488 epsp = sqrt(three*epsp)/three_half
489 syield(i) = fac1*syield(i)*(finter(ifunc(2),epsp,npf,tf,b*c))
490 ENDIF
491 ENDDO
492
493 DO i=1,nel
494 sigsxx(i)=sigoxx(i)+sigair(i)
495 sigsyy(i)=sigoyy(i)+sigair(i)
496 sigszz(i)=sigozz(i)+sigair(i)
497 sigsxy(i)=sigoxy(i)
498 sigsyz(i)=sigoyz(i)
499 sigszx(i)=sigozx(i)
500 ENDDO
501
502
503 DO i=1,nel
504 sigsxx(i)=sigsxx(i)+ey*epspxx(i)*timestep
505 sigsyy(i)=sigsyy(i)+ey*epspyy(i)*timestep
506 sigszz(i)=sigszz(i)+ey*epspzz(i)*timestep
507 sigsxy(i)=sigsxy(i)+ey*epspxy(i)*timestep*half
508 sigsyz(i)=sigsyz(i)+ey*epspyz(i)*timestep*half
509 sigszx(i)=sigszx(i)+ey*epspzx(i)*timestep*half
510 ENDDO
511 DO i = 1, nel
512 sigv(i,1) = sigsxx(i)
513 sigv(i,2) = sigsyy(i)
514 sigv(i,3) = sigszz(i)
515 sigv(i,4) = sigsxy(i)
516 sigv(i,5) = sigsyz(i)
517 sigv(i,6) = sigszx(i)
518 ENDDO
519
520 IF (iresp==1) THEN
522 ELSE
524 ENDIF
525 DO i =1, nel
526
527 IF(abs(gama(i)) < em10) THEN
528 sigprv(i,1)=sign(
min(abs(sigprv(i,1)), sigt_cutoff),sigprv(i,1))
529 sigprv(i,2)=sign(
min(abs(sigprv(i,2)), sigt_cutoff),sigprv(i,2))
530 sigprv(i,3)=sign(
min(abs(sigprv(i,3)), sigt_cutoff),sigprv(i,3))
531 ELSEIF(gama(i) < zero )then
532
533 sigprv(i,1)=sign(
min(syield(i),abs(sigprv(i,1))),sigprv(i,1))
534 sigprv(i,2)=sign(
min(syield(i),abs(sigprv(i,2))),sigprv(i,2))
535 sigprv(i,3)=sign(
min(syield(i),abs(sigprv(i,3))),sigprv(i,3))
536
537 sigprv(i,1)=
min(sigprv(i,1), sigt_cutoff)
538 sigprv(i,2)=
min(sigprv(i,2), sigt_cutoff)
539 sigprv(i,3)=
min(sigprv(i,3), sigt_cutoff)
540
541 ELSE
542 sigprv(i,1)=sign(
min(abs(sigprv(i,1)), sigt_cutoff),sigprv(i,1))
543 sigprv(i,2)=sign(
min(abs(sigprv(i,2)), sigt_cutoff),sigprv(i,2))
544 sigprv(i,3)=sign(
min(abs(sigprv(i,3)), sigt_cutoff),sigprv(i,3))
545
546
547
548
549 sigprv(i,1)=
max(sigprv(i,1), zero)
550 sigprv(i,2)=
max(sigprv(i,2), zero)
551 sigprv(i,3)=
max(sigprv(i,3), zero)
552
553 ENDIF
554
555 sigsxx(i) = dirprv(i,1,1)*dirprv(i,1,1)*sigprv(i,1)
556 . + dirprv(i,1,2)*dirprv(i,1,2)*sigprv(i,2)
557 . + dirprv(i,1,3)*dirprv(i,1,3)*sigprv(i,3)
558
559 sigsyy(i) = dirprv(i,2,2)*dirprv(i,2,2)*sigprv(i,2)
560 . + dirprv(i,2,3)*dirprv(i,2,3)*sigprv(i,3)
561 . + dirprv(i,2,1)*dirprv(i,2,1)*sigprv(i,1)
562
563 sigszz(i) = dirprv(i,3,3)*dirprv(i,3,3)*sigprv(i,3)
564 . + dirprv(i,3,1)*dirprv(i,3,1)*sigprv(i,1)
565 . + dirprv(i,3,2)*dirprv(i,3,2)*sigprv(i,2)
566
567 sigsxy(i) = dirprv(i,1,1)*dirprv(i,2,1)*sigprv(i,1)
568 . + dirprv(i,1,2)*dirprv(i,2,2)*sigprv(i,2)
569 . + dirprv(i,1,3)*dirprv(i,2,3)*sigprv(i,3)
570
571 sigsyz(i) = dirprv(i,2,2)*dirprv(i,3,2)*sigprv(i,2)
572 . + dirprv(i,2,3)*dirprv(i,3,3)*sigprv(i,3)
573 . + dirprv(i,2,1)*dirprv(i,3,1)*sigprv(i,1)
574
575 sigszx(i) = dirprv(i,3,3)*dirprv(i,1,3)*sigprv(i,3)
576 . + dirprv(i,3,1)*dirprv(i,1,1)*sigprv(i,1)
577 . + dirprv(i,3,2)*dirprv(i,1,2)*sigprv(i,2)
578
579 ENDDO
580
581
582
583 DO i=1,nel
584 signxx(i)=off(i)*sigsxx(i)-sigair(i)
585 signyy(i)=off(i)*sigsyy(i)-sigair(i)
586 signzz(i)=off(i)*sigszz(i)-sigair(i)
587 signxy(i)=off(i)*sigsxy(i)
588 signyz(i)=off(i)*sigsyz(i)
589 signzx(i)=off(i)*sigszx(i)
590 soundsp(i)=sqrt(ey/rho0(i))
591 ENDDO
592 END SELECT
593
594 RETURN
595
subroutine dreh(b, tr, ii, jj, ken)
subroutine jacobiew(a, n, ew, ev, nrot)
subroutine valpvecdp_v(sig, val, vec, nel)
subroutine valpvec_v(sig, val, vec, nel)