33 1 NEL ,NUPARAM,NUVAR ,NFUNC ,IFUNC ,NPF ,
34 2 TF ,TIME ,TIMESTEP,UPARAM ,RHO0 ,RHO ,
36 4 EPSPXX ,EPSPYY ,EPSPZZ ,EPSPXY ,EPSPYZ ,EPSPZX ,
37 5 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
38 6 EPSXX ,EPSYY ,EPSZZ ,EPSXY ,EPSYZ ,EPSZX ,
39 7 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
40 8 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
41 9 SIGVXX ,SIGVYY ,SIGVZZ ,SIGVXY ,SIGVYZ ,SIGVZX ,
42 A SOUNDSP,VISCMAX,UVAR ,OFF )
46#include "implicit_f.inc"
98 INTEGER NEL, NUPARAM, NUVAR
100 . TIME,TIMESTEP,UPARAM(NUPARAM),
101 . RHO(NEL),RHO0(NEL),VOLUME(NEL),(NEL),
102 . EPSPXX(NEL),EPSPYY(NEL),EPSPZZ(NEL),
103 . EPSPXY(NEL),EPSPYZ(NEL),EPSPZX(NEL),
104 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
105 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
106 . EPSXX(NEL) ,EPSYY(NEL) ,EPSZZ(NEL) ,
107 . EPSXY(NEL) ,EPSYZ(NEL) ,EPSZX(NEL) ,
108 . sigoxx(nel),sigoyy(nel),sigozz(nel),
109 . sigoxy(nel),sigoyz(nel),sigozx(nel)
114 . signxx(nel),signyy(nel),signzz(nel),
115 . signxy(nel),signyz(nel),signzx(nel),
116 . sigvxx(nel),sigvyy(nel),sigvzz(nel),
117 . sigvxy(nel),sigvyz(nel),sigvzx(nel),
118 . soundsp(nel),viscmax(nel)
123 . uvar(nel,nuvar), off(nel)
127 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
143 . AK,G0,G(5),BETA(5),
144 . EV,EDXX,EDYY,EDZZ,EDXY,EDYZ,EDZX,
145 . SXX,SYY,SZZ,SXY,SYZ,SZX,
147 . EPXX,EPYY,EPZZ,EPXY,EPYZ,EPZX,GT,
152 . eprnxx,eprnyy,eprnzz,eprnxy,eprnyz,eprnzx,
153 . evr,edrnxx,edrnyy,edrnzz,edrnxy,edrnyz,edrnzx,
154 . edrvxx,edrvyy,edrvzz,edrvxy,edrvyz,edrvzx
156 . axx,ayy,azz,axy,ayz,azx,
157 . bxx,byy,bzz,bxy,byz,bzx,
158 . aaxx,aayy,aazz,aaxy,aayz,aazx,
159 . bbxx,bbyy,bbzz,bbxy,bbyz,bbzx,
160 . ccxx,ccyy,cczz,ccxy,ccyz,cczx,
161 . evsdxx,evsdyy,evsdzz,evsdxy,evsdyz,evsdzx
193 gt = g0 + g(1) + g(2) + g(3) + g(4) + g(5)
237 ev = (epxx + epyy + epzz) * third
252 evr = (eprnxx + eprnyy + eprnzz) * third
253 edrnxx = eprnxx - evr
254 edrnyy = eprnyy - evr
255 edrnzz = eprnzz - evr
256 edrnxy = eprnxy * half
257 edrnyz = eprnyz * half
258 edrnzx = eprnzx * half
269 bxx = two * (edrnxx - edrvxx) /
max(dt,em20)
271 byy = two * (edrnyy - edrvyy) /
max(dt,em20)
273 bzz = two * (edrnzz - edrvzz) /
max(dt,em20)
275 bxy = two * (edrnxy - edrvxy) /
max(dt,em20)
277 byz = two * (edrnyz - edrvyz) /
max(dt,em20)
279 bzx = two * (edrnzx - edrvzx) /
max(dt,em20)
285 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
286 bbxx = g(j)/beta(j) * bxx
287 ccxx = sdv(k+1) - aaxx
288 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
289 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
290 bbyy = g(j)/beta(j) * byy
291 ccyy = sdv(k+2) - aayy
292 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
293 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
294 bbzz = g(j)/beta(j) * bzz
295 cczz = sdv(k+3) - aazz
296 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
297 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
298 bbxy = g(j)/beta(j) * bxy
299 ccxy = sdv(k+4) - aaxy
300 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
301 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
302 bbyz = g(j)/beta(j) * byz
303 ccyz = sdv(k+5) - aayz
304 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
305 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
307 cczx = sdv(k+6) - aazx
308 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
309 uvar(i,(k + 11)) = evsdxx
310 uvar(i,(k + 12)) = evsdyy
311 uvar(i,(k + 13)) = evsdzz
312 uvar(i,(k + 14)) = evsdxy
313 uvar(i,(k + 15)) = evsdyz
314 uvar(i,(k + 16)) = evsdzx
318 aaxx = g(j)/beta(j) * (axx -
319 bbxx = g(j)/beta(j) * bxx
320 ccxx = sdv(k+1) - aaxx
321 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
322 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
323 bbyy = g(j)/beta(j) * byy
324 ccyy = sdv(k+2) - aayy
325 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
326 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
327 bbzz = g(j)/beta(j) * bzz
328 cczz = sdv(k+3) - aazz
329 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
330 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
331 bbxy = g(j)/beta(j) * bxy
332 ccxy = sdv(k+4) - aaxy
333 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
334 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
335 bbyz = g(j)/beta(j) * byz
336 ccyz = sdv(k+5) - aayz
337 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
338 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
339 bbzx = g(j)/beta(j) * bzx
340 cczx = sdv(k+6) - aazx
341 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
342 uvar(i,(k + 11)) = evsdxx
343 uvar(i,(k + 12)) = evsdyy
344 uvar(i,(k + 13)) = evsdzz
345 uvar(i,(k + 14)) = evsdxy
346 uvar(i,(k + 15)) = evsdyz
347 uvar(i,(k + 16)) = evsdzx
351 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
352 bbxx = g(j)/beta(j) * bxx
353 ccxx = sdv(k+1) - aaxx
354 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
355 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
356 bbyy = g(j)/beta(j) * byy
357 ccyy = sdv(k+2) - aayy
358 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
359 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
360 bbzz = g(j)/beta(j) * bzz
361 cczz = sdv(k+3) - aazz
362 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
363 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
364 bbxy = g(j)/beta(j) * bxy
365 ccxy = sdv(k+4) - aaxy
366 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
367 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
368 bbyz = g(j)/beta(j) * byz
369 ccyz = sdv(k+5) - aayz
370 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
371 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
372 bbzx = g(j)/beta(j) * bzx
373 cczx = sdv(k+6) - aazx
374 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
375 uvar(i,(k + 11)) = evsdxx
376 uvar(i,(k + 12)) = evsdyy
377 uvar(i,(k + 13)) = evsdzz
378 uvar(i,(k + 14)) = evsdxy
379 uvar(i,(k + 15)) = evsdyz
380 uvar(i,(k + 16)) = evsdzx
384 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
385 bbxx = g(j)/beta(j) * bxx
386 ccxx = sdv(k+1) - aaxx
387 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
388 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
389 bbyy = g(j)/beta(j) * byy
390 ccyy = sdv(k+2) - aayy
391 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
392 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
393 bbzz = g(j)/beta(j) * bzz
394 cczz = sdv(k+3) - aazz
395 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
396 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
397 bbxy = g(j)/beta(j) * bxy
398 ccxy = sdv(k+4) - aaxy
399 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
400 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
401 bbyz = g(j)/beta(j) * byz
402 ccyz = sdv(k+5) - aayz
403 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
404 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
405 bbzx = g(j)/beta(j) * bzx
406 cczx = sdv(k+6) - aazx
407 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
408 uvar(i,(k + 11)) = evsdxx
409 uvar(i,(k + 12)) = evsdyy
410 uvar(i,(k + 13)) = evsdzz
411 uvar(i,(k + 14)) = evsdxy
412 uvar(i,(k + 15)) = evsdyz
413 uvar(i,(k + 16)) = evsdzx
417 aaxx = g(j)/beta(j) * (axx - bxx/beta(j))
418 bbxx = g(j)/beta(j) * bxx
419 ccxx = sdv(k+1) - aaxx
420 evsdxx = aaxx + bbxx*dt + ccxx*exp(-beta(j)*dt)
421 aayy = g(j)/beta(j) * (ayy - byy/beta(j))
422 bbyy = g(j)/beta(j) * byy
423 ccyy = sdv(k+2) - aayy
424 evsdyy = aayy + bbyy*dt + ccyy*exp(-beta(j)*dt)
425 aazz = g(j)/beta(j) * (azz - bzz/beta(j))
426 bbzz = g(j)/beta(j) * bzz
427 cczz = sdv(k+3) - aazz
428 evsdzz = aazz + bbzz*dt + cczz*exp(-beta(j)*dt)
429 aaxy = g(j)/beta(j) * (axy - bxy/beta(j))
430 bbxy = g(j)/beta(j) * bxy
431 ccxy = sdv(k+4) - aaxy
432 evsdxy = aaxy + bbxy*dt + ccxy*exp(-beta(j)*dt)
433 aayz = g(j)/beta(j) * (ayz - byz/beta(j))
434 bbyz = g(j)/beta(j) * byz
435 ccyz = sdv(k+5) - aayz
436 evsdyz = aayz + bbyz*dt + ccyz*exp(-beta(j)*dt)
437 aazx = g(j)/beta(j) * (azx - bzx/beta(j))
438 bbzx = g(j)/beta(j) * bzx
439 cczx = sdv(k+6) - aazx
440 evsdzx = aazx + bbzx*dt + cczx*exp(-beta(j)*dt)
441 uvar(i,(k + 11)) = evsdxx
442 uvar(i,(k + 12)) = evsdyy
443 uvar(i,(k + 13)) = evsdzz
444 uvar(i,(k + 14)) = evsdxy
445 uvar(i,(k + 15)) = evsdyz
446 uvar(i,(k + 16)) = evsdzx
448 sigv = (sigoxx(i) + sigoyy(i) + sigozz(i))* third
449 sigv = sigv + (3. * ak) *
450 . (depsxx(i) + depsyy(i) + depszz(i)) * third
460 sxx = sxx + uvar(i,11)
461 syy = syy + uvar(i,12)
462 szz = szz + uvar(i,13)
463 sxy = sxy + uvar(i,14)
464 syz = syz + uvar(i,15)
465 szx = szx + uvar(i,16)
467 sxx = sxx + uvar(i,17)
468 syy = syy + uvar(i,18)
469 szz = szz + uvar(i,19)
470 sxy = sxy + uvar(i,20)
471 syz = syz + uvar(i,21)
472 szx = szx + uvar(i,22)
474 sxx = sxx + uvar(i,23)
475 syy = syy + uvar(i,24)
476 szz = szz + uvar(i,25)
477 sxy = sxy + uvar(i,26)
478 syz = syz + uvar(i,27)
479 szx = szx + uvar(i,28)
481 sxx = sxx + uvar(i,29)
482 syy = syy + uvar(i,30)
483 szz = szz + uvar(i,31)
484 sxy = sxy + uvar(i,32)
485 syz = syz + uvar(i,33)
486 szx = szx + uvar(i,34)
488 sxx = sxx + uvar(i,35)
489 syy = syy + uvar(i,36)
490 szz = szz + uvar(i,37)
491 sxy = sxy + uvar(i,38)
492 syz = syz + uvar(i,39)
493 szx = szx + uvar(i,40)
495 uvar(i,5) = two * edrnxx - edrvxx
496 uvar(i,6) = two * edrnyy - edrvyy
497 uvar(i,7) = two * edrnzz - edrvzz
498 uvar(i,8) = two * edrnxy - edrvxy
499 uvar(i,9) = two * edrnyz - edrvyz
500 uvar(i,10) = two * edrnzx - edrvzx
502 signxx(i) = sxx + sigv
503 signyy(i) = syy + sigv
504 signzz(i) = szz + sigv
509 soundsp(i) = sqrt((ak/rho(i)) +
510 . ((two*two*gt)/(rho(i)*three)))
517 ssig1=signxx(i)+signyy(i)+signzz(i)
518 ssig2=half*(sxx**2+syy**2+szz**2)+sxy**2+syz**2+szx**2
522 uvar(i,1)=exp( half*log(ssig2) )/vmisk
527 IF( (ssig1**2.+astas*2.*ssig2)>zero )
THEN
528 uvar(i,2)=( ssig1+exp( half*log(ssig1**2+astas*2*ssig2) ) )/bstas
530 uvar(i,2) = ssig1/bstas
532 uvar(i,3)=
max(uvar(i,3),uvar(i,1))
533 uvar(i,4)=
max(uvar(i,4),uvar(i,2))