218#include "implicit_f.inc"
222#include "mvsiz_p.inc"
227 . sig(6,*), val(3,*), vec(9,*)
232 INTEGER N, NN, LMAX, LMAXV(MVSIZ),NINDEX3, INDEX3(MVSIZ),
233 . NINDEX1, NINDEX2, INDEX1(MVSIZ), INDEX2(MVSIZ)
235 . cs(6), str(3,mvsiz), a(3,3,mvsiz), v(3,3,mvsiz), b(3,3,mvsiz),
236 . xmag(3,mvsiz), pr, aa, bb, aaa(mvsiz),
237 . cc, angp, dd, ftpi, ttpi, strmax,
238 . tol1(mvsiz), tol2(mvsiz), xmaxv(mvsiz), norminf(mvsiz),
242 . mdemi, xmaxinv, flm
255 flm = two*sqrt(flmin)
264 pr = -(cs(1)+cs(2)+cs(3))* third
268 aaa(nn)=cs(4)**2 + cs(5)**2 + cs(6)**2 - cs(1)*cs(2)
269 & - cs(2)*cs(3) - cs(1)*cs(3)
270 norminf(nn) =
max(abs(cs(1)),abs(cs(2)),abs(cs(3)),
271 & abs(cs(4)),abs(cs(5)),abs(cs(6)))
272 norminf(nn) = em10*norminf(nn)
274 aa =
max(aaa(nn),norminf(nn),em20)
276 bb=cs(1)*cs(5)**2 + cs(2)*cs(6)**2
277 & + cs(3)*cs(4)**2 - cs(1)*cs(2)*cs(3)
278 & - two*cs(4)*cs(5)*cs(6)
280 cc=-sqrt(twenty7/aa)*bb*half/aa
283 angp=acos(cc) * third
284 dd=two*sqrt(aa * third)
285 str(1,nn)=dd*cos(angp)
286 str(2,nn)=dd*cos(angp+ftpi)
287 str(3,nn)=dd*cos(angp+ttpi)
289 val(1,nn) = str(1,nn)-pr
290 val(2,nn) = str(2,nn)-pr
291 val(3,nn) = str(3,nn)-pr
293 IF(abs(str(3,nn))>abs(str(1,nn))
294 & .AND.aaa(nn)>norminf(nn))
THEN
304 strmax=
max(abs(str(1,nn)),abs(str(3,nn)))
305 tol1(nn)=
max(em20,flm*strmax**2)
306 tol2(nn)=flm*strmax/3
307 a(1,1,nn)=cs(1)-str(1,nn)
308 a(2,2,nn)=cs(2)-str(1,nn)
309 a(3,3,nn)=cs(3)-str(1,nn)
317 b(1,1,nn)=a(2,1,nn)*a(3,2,nn)-a(3,1,nn)
319 b(1,2,nn)=a(2,2,nn)*a(3,3,nn)-a(3,2,nn)
321 b(1,3,nn)=a(2,3,nn)*a(3,1,nn)-a(3,3,nn)
323 b(2,1,nn)=a(3,1,nn)*a(1,2,nn)-a(1,1,nn)
325 b(2,2,nn)=a(3,2,nn)*a(1,3,nn)-a(1,2,nn)
327 b(2,3,nn)=a(3,3,nn)*a(1,1,nn)-a(1,3,nn)
329 b(3,1,nn)=a(1,1,nn)*a(2,2,nn)-a(2,1,nn)
331 b(3,2,nn)=a(1,2,nn)*a(2,3,nn)-a(2,2,nn)
333 b(3,3,nn)=a(1,3,nn)*a(2,1,nn)-a(2,3,nn)
335 xmag(1,nn)=sqrt(b(1,1,nn)**2+b(2,1,nn)**2+b(3,1,nn)**2)
336 xmag(2,nn)=sqrt(b(1,2,nn)**2+b(2,2,nn)**2+b(3,2,nn)**2)
337 xmag(3,nn)=sqrt(b(1,3,nn)**2+b(2,3,nn)**2+b(3,3,nn)**2)
344 xmaxv(nn)=
max(xmag(1,nn),xmag(2,nn),xmag(3,nn))
345 IF(xmag(1,nn)==xmaxv(nn))
THEN
347 ELSEIF(xmag(2,nn)==xmaxv(nn))
THEN
352 IF(aaa(nn)<norminf(nn))
THEN
353 val(1,nn) = sig(1,nn)
354 val(2,nn) = sig(2,nn)
355 val(3,nn) = sig(3,nn)
363 ELSEIF(xmaxv(nn)>tol1(nn))
THEN
364 nindex1 = nindex1 + 1
367 nindex2 = nindex2 + 1
376 xmaxinv = one/xmaxv(nn)
377 v(1,1,nn)=b(1,lmax,nn)*xmaxinv
378 v(2,1,nn)=b(2,lmax,nn)*xmaxinv
379 v(3,1,nn)=b(3,lmax,nn)*xmaxinv
380 a(1,1,nn)=a(1,1,nn)+str(1,nn)-str(3,nn)
381 a(2,2,nn)=a(2,2,nn)+str(1,nn)-str(3,nn)
382 a(3,3,nn)=a(3,3,nn)+str(1,nn)-str(3,nn)
384 b(1,1,nn)=a(2,1,nn)*v(3,1,nn)-a(3,1,nn)*v(2,1,nn)
385 b(1,2,nn)=a(2,2,nn)*v(3,1,nn)-a(3,2,nn)*v(2,1,nn)
386 b(1,3,nn)=a(2,3,nn)*v(3,1,nn)-a(3,3,nn)*v(2,1,nn)
387 b(2,1,nn)=a(3,1,nn)*v(1,1,nn)-a(1,1,nn)*v(3,1,nn)
388 b(2,2,nn)=a(3,2,nn)*v(1,1,nn)-a(1,2,nn)*v(3,1,nn)
389 b(2,3,nn)=a(3,3,nn)*v(1,1,nn)-a(1,3,nn)*v(3,1,nn)
390 b(3,1,nn)=a(1,1,nn)*v(2,1,nn)-a(2,1,nn)*v(1,1,nn)
391 b(3,2,nn)=a(1,2,nn)*v(2,1,nn)-a(2,2,nn)*v(1,1,nn)
392 b(3,3,nn)=a(1,3,nn)*v(2,1,nn)-a(2,3,nn)*v(1,1,nn)
393 xmag(1,nn)=sqrt(b(1,1,nn)**2+b(2,1,nn)**2+b(3,1,nn)**2)
394 xmag(2,nn)=sqrt(b(1,2,nn)**2+b(2,2,nn)**2+b(3,2,nn)**2)
395 xmag(3,nn)=sqrt(b(1,3,nn)**2+b(2,3,nn)**2+b(3,3,nn)**2)
397 xmaxv(nn)=
max(xmag(1,nn),xmag(2,nn),xmag(3,nn))
403 IF(xmag(1,nn)==xmaxv(nn))
THEN
405 ELSEIF(xmag(2,nn)==xmaxv(nn))
THEN
411 vmag=sqrt(v(1,1,nn)**2+v(2,1,nn)**2)
413 IF(xmaxv(nn)>tol2(nn))
THEN
414 xmaxinv = one/xmaxv(nn)
415 v(1,3,nn)=b(1,lmax,nn)*xmaxinv
416 v(2,3,nn)=b(2,lmax,nn)*xmaxinv
417 v(3,3,nn)=b(3,lmax,nn)*xmaxinv
418 v(1,2,nn)=v(2,3,nn)*v(3,1,nn)-v(2,1,nn)*v(3,3,nn)
419 v(2,2,nn)=v(3,3,nn)*v(1,1,nn)-v(3,1,nn)*v(1,3,nn)
420 v(3,2,nn)=v(1,3,nn)*v(2,1,nn)-v(1,1,nn)*v(2,3,nn)
421 vmag=one/sqrt(v(1,2,nn)**2+v(2,2,nn)**2+v(3,2,nn)**2)
422 v(1,2,nn)=v(1,2,nn)*vmag
423 v(2,2,nn)=v(2,2,nn)*vmag
424 v(3,2,nn)=v(3,2,nn)*vmag
425 ELSEIF(vmag>tol2(nn))
THEN
426 v(1,2,nn)=-v(2,1,nn)/vmag
427 v(2,2,nn)=v(1,1,nn)/vmag
440 xmag(1,nn)=sqrt(a(1,1,nn)**2+a(2,1,nn)**2)
441 xmag(2,nn)=sqrt(a(1,2,nn)**2+a(2,2,nn)**2)
442 xmag(3,nn)=sqrt(a(1,3,nn)**2+a(2,3,nn)**2)
444 xmaxv(nn)=
max(xmag(1,nn),xmag(2,nn),xmag(3,nn))
450 IF(xmag(1,nn)==xmaxv(nn))
THEN
452 ELSEIF(xmag(2,nn)==xmaxv(nn))
THEN
459 IF(
max(abs(a(3,1,nn)),abs(a(3,2,nn)),abs(a(3,3,nn)))
461 xmaxinv = one/xmaxv(nn)
465 v(1,2,nn)=-a(2,lmax,nn)*xmaxinv
466 v(2,2,nn)= a(1,lmax,nn)*xmaxinv
469 ELSEIF(xmaxv(nn)>tol2(nn))
THEN
470 xmaxinv = one/xmaxv(nn)
471 v(1,1,nn)=-a(2,lmax,nn)*xmaxinv
472 v(2,1,nn)= a(1,lmax,nn)*xmaxinv
474 v(1,2,nn)=-a(3,lmax,nn)*v(2,1,nn)
475 v(2,2,nn)= a(3,lmax,nn)*v(1,1,nn)
476 v(3,2,nn)= a(1,lmax,nn)*v(2,1,nn)-a(2,lmax,nn)*v(1,1,nn)
477 vmag=one/sqrt(v(1,2,nn)**2+v(2,2,nn)**2+v(3,2,nn)**2)
478 v(1,2,nn)=v(1,2,nn)*vmag
479 v(2,2,nn)=v(2,2,nn)*vmag
480 v(3,2,nn)=v(3,2,nn)*vmag
498 vec(7,nn)=vec(2,nn)*vec(6,nn)-vec(3,nn)*vec(5,nn)
499 vec(8,nn)=vec(3,nn)*vec(4,nn)-vec(1,nn)*vec(6,nn)
500 vec(9,nn)=vec(1,nn)*vec(5,nn)-vec(2,nn)*vec(4,nn)
536#include "implicit_f.inc"
540#include "mvsiz_p.inc"
545 . sig(6,*), val(3,*), vec(9,*)
550 INTEGER N, NN, LMAX, LMAXV(MVSIZ),NINDEX3, INDEX3(MVSIZ),
551 . NINDEX1, NINDEX2, INDEX1(MVSIZ), INDEX2(MVSIZ)
553 . cs(6), str(3,mvsiz), a(3,3,mvsiz), v(3,3,mvsiz), b(3,3,mvsiz),
554 . xmag(3,mvsiz), pr, aa, bb, aaa(mvsiz),
555 . cc, angp, dd, ftpi, ttpi, strmax,
556 . tol1(mvsiz), tol2(mvsiz), xmaxv(mvsiz), norminf(mvsiz),
560 . mdemi, xmaxinv, flm,
561 . valdp(3,mvsiz),vecdp(9,mvsiz)
574 flm = two*sqrt(flmin)
583 pr = -(cs(1)+cs(2)+cs(3)) * third
587 aaa(nn)=cs(4)**2 + cs(5)**2 + cs(6)**2 - cs(1)*cs(2)
588 & - cs(2)*cs(3) - cs(1)*cs(3)
589 norminf(nn) =
max(abs(cs(1)),abs(cs(2)),abs(cs(3)),
590 & abs(cs(4)),abs(cs(5)),abs(cs(6)))
591 norminf(nn) = em10*norminf(nn)
593 aa =
max(aaa(nn),norminf(nn),em20)
595 bb=cs(1)*cs(5)**2 + cs(2)*cs(6)**2
596 & + cs(3)*cs(4)**2 - cs(1)*cs(2)*cs(3)
597 & - two*cs(4)*cs(5)*cs(6)
599 cc=-sqrt(twenty7/aa)*bb*half/aa
602 angp=acos(cc) * third
603 dd=two*sqrt(aa * third)
604 str(1,nn)=dd*cos(angp)
605 str(2,nn)=dd*cos(angp+ftpi)
606 str(3,nn)=dd*cos(angp+ttpi)
608 valdp(1,nn) = str(1,nn)-pr
609 valdp(2,nn) = str(2,nn)-pr
610 valdp(3,nn) = str(3,nn)-pr
612 IF(abs(str(3,nn))>abs(str(1,nn))
613 & .AND.aaa(nn)>norminf(nn))
THEN
623 strmax=
max(abs(str(1,nn)),abs(str(3,nn)))
624 tol1(nn)=
max(em20,flm*strmax**2)
625 tol2(nn)=flm*strmax * third
626 a(1,1,nn)=cs(1)-str(1,nn)
627 a(2,2,nn)=cs(2)-str(1,nn)
628 a(3,3,nn)=cs(3)-str(1,nn)
636 b(1,1,nn)=a(2,1,nn)*a(3,2,nn)-a(3,1,nn)
638 b(1,2,nn)=a(2,2,nn)*a(3,3,nn)-a(3,2,nn)
640 b(1,3,nn)=a(2,3,nn)*a(3,1,nn)-a(3,3,nn)
642 b(2,1,nn)=a(3,1,nn)*a(1,2,nn)-a(1,1,nn)
644 b(2,2,nn)=a(3,2,nn)*a(1,3,nn)-a(1,2,nn)
646 b(2,3,nn)=a(3,3,nn)*a(1,1,nn)-a(1,3,nn)
648 b(3,1,nn)=a(1,1,nn)*a(2,2,nn)-a(2,1,nn)
650 b(3,2,nn)=a(1,2,nn)*a(2,3,nn)-a(2,2,nn)
652 b(3,3,nn)=a(1,3,nn)*a(2,1,nn)-a(2,3,nn)
654 xmag(1,nn)=sqrt(b(1,1,nn)**2+b(2,1,nn)**2+b(3,1,nn)**2)
655 xmag(2,nn)=sqrt(b(1,2,nn)**2+b(2,2,nn)**2+b(3,2,nn)**2)
656 xmag(3,nn)=sqrt(b(1,3,nn)**2+b(2,3,nn)**2+b(3,3,nn)**2)
663 xmaxv(nn)=
max(xmag(1,nn),xmag(2,nn),xmag(3,nn))
664 IF(xmag(1,nn)==xmaxv(nn))
THEN
666 ELSEIF(xmag(2,nn)==xmaxv(nn))
THEN
671 IF(aaa(nn)<norminf(nn))
THEN
672 valdp(1,nn) = sig(1,nn)
673 valdp(2,nn) = sig(2,nn)
674 valdp(3,nn) = sig(3,nn)
681 ELSEIF(xmaxv(nn)>tol1(nn))
THEN
682 nindex1 = nindex1 + 1
685 nindex2 = nindex2 + 1
694 xmaxinv = one/xmaxv(nn)
695 v(1,1,nn)=b(1,lmax,nn)*xmaxinv
696 v(2,1,nn)=b(2,lmax,nn)*xmaxinv
697 v(3,1,nn)=b(3,lmax,nn)*xmaxinv
698 a(1,1,nn)=a(1,1,nn)+str(1,nn)-str(3,nn)
699 a(2,2,nn)=a(2,2,nn)+str(1,nn)-str(3,nn)
700 a(3,3,nn)=a(3,3,nn)+str(1,nn)-str(3,nn)
702 b(1,1,nn)=a(2,1,nn)*v(3,1,nn)-a(3,1,nn)*v(2,1,nn)
703 b(1,2,nn)=a(2,2,nn)*v(3,1,nn)-a(3,2,nn)*v(2,1,nn
704 b(1,3,nn)=a(2,3,nn)*v(3,1,nn)-a(3,3,nn)*v(2,1,nn)
705 b(2,1,nn)=a(3,1,nn)*v(1,1,nn)-a(1,1,nn)*v(3,1,nn)
706 b(2,2,nn)=a(3,2,nn)*v(1,1,nn)-a(1,2,nn
707 b(2,3,nn)=a(3,3,nn)*v(1,1,nn)-a(1,3,nn)*v(3,1,nn)
708 b(3,1,nn)=a(1,1,nn)*v(2,1,nn)-a(2,1,nn)*v(1,1,nn)
709 b(3,2,nn)=a(1,2,nn)*v(2,1,nn)-a(2,2,nn)*v(1,1,nn)
710 b(3,3,nn)=a(1,3,nn)*v(2,1,nn)-a(2,3,nn)*v(1,1,nn)
711 xmag(1,nn)=sqrt(b(1,1,nn)**2+b(2,1,nn)**2+b(3,1,nn)**2)
712 xmag(2,nn)=sqrt(b(1,2,nn)**2+b(2,2,nn)**2+b(3,2,nn)**2)
713 xmag(3,nn)=sqrt(b(1,3,nn)**2+b(2,3,nn)**2+b(3,3,nn)**2)
715 xmaxv(nn)=
max(xmag(1,nn),xmag(2,nn),xmag(3,nn))
721 IF(xmag(1,nn)==xmaxv(nn))
THEN
723 ELSEIF(xmag(2,nn)==xmaxv(nn))
THEN
729 vmag=sqrt(v(1,1,nn)**2+v(2,1,nn)**2)
731 IF(xmaxv(nn)>tol2(nn))
THEN
732 xmaxinv = one/xmaxv(nn)
733 v(1,3,nn)=b(1,lmax,nn)*xmaxinv
734 v(2,3,nn)=b(2,lmax,nn)*xmaxinv
735 v(3,3,nn)=b(3,lmax,nn)*xmaxinv
736 v(1,2,nn)=v(2,3,nn)*v(3,1,nn)-v(2,1,nn)*v(3,3,nn)
737 v(2,2,nn)=v(3,3,nn)*v(1,1,nn)-v(3,1,nn)*v(1,3,nn)
738 v(3,2,nn)=v(1,3,nn)*v(2,1,nn)-v(1,1,nn)*v(2,3,nn)
739 vmag=one/sqrt(v(1,2,nn)**2+v(2,2,nn)**2+v(3,2,nn)**2)
740 v(1,2,nn)=v(1,2,nn)*vmag
741 v(2,2,nn)=v(2,2,nn)*vmag
742 v(3,2,nn)=v(3,2,nn)*vmag
743 ELSEIF(vmag>tol2(nn))
THEN
744 v(1,2,nn)=-v(2,1,nn)/vmag
745 v(2,2,nn)=v(1,1,nn)/vmag
758 xmag(1,nn)=sqrt(a(1,1,nn)**2+a(2,1,nn)**2)
759 xmag(2,nn)=sqrt(a(1,2,nn)**2+a(2,2,nn)**2)
760 xmag(3,nn)=sqrt(a(1,3,nn)**2+a(2,3,nn)**2)
762 xmaxv(nn)=
max(xmag(1,nn),xmag(2,nn),xmag(3,nn))
768 IF(xmag(1,nn)==xmaxv(nn))
THEN
770 ELSEIF(xmag(2,nn)==xmaxv(nn))
THEN
777 IF(
max(abs(a(3,1,nn)),abs(a(3,2,nn)),abs(a(3,3,nn)))
779 xmaxinv = one/xmaxv(nn)
783 v(1,2,nn)=-a(2,lmax,nn)*xmaxinv
784 v(2,2,nn)= a(1,lmax,nn)*xmaxinv
787 ELSEIF(xmaxv(nn)>tol2(nn))
THEN
788 xmaxinv = one/xmaxv(nn)
789 v(1,1,nn)=-a(2,lmax,nn)*xmaxinv
790 v(2,1,nn)= a(1,lmax,nn)*xmaxinv
792 v(1,2,nn)=-a(3,lmax,nn)*v(2,1,nn)
793 v(2,2,nn)= a(3,lmax,nn)*v(1,1,nn)
794 v(3,2,nn)= a(1,lmax,nn)*v(2,1,nn)-a(2,lmax,nn)*v(1,1,nn)
795 vmag=one/sqrt(v(1,2,nn)**2+v(2,2,nn)**2+v(3,2,nn)**2)
796 v(1,2,nn)=v(1,2,nn)*vmag
797 v(2,2,nn)=v(2,2,nn)*vmag
798 v(3,2,nn)=v(3,2,nn)*vmag
810 vecdp(1,nn)=v(1,1,nn)
811 vecdp(2,nn)=v(2,1,nn)
812 vecdp(3,nn)=v(3,1,nn)
813 vecdp(4,nn)=v(1,2,nn)
814 vecdp(5,nn)=v(2,2,nn)
815 vecdp(6,nn)=v(3,2,nn)
816 vecdp(7,nn)=vecdp(2,nn)*vecdp(6,nn)-vecdp(3,nn)*vecdp(5,nn)
817 vecdp(8,nn)=vecdp(3,nn)*vecdp(4,nn)-vecdp(1,nn)*vecdp(6,nn)
818 vecdp(9,nn)=vecdp(1,nn)*vecdp(5,nn)-vecdp(2,nn)*vecdp(4,nn)
822 val(1,nn)=valdp(1,nn)
823 val(2,nn)=valdp(2,nn)
824 val(3,nn)=valdp(3,nn)
825 vec(1,nn)=vecdp(1,nn)
826 vec(2,nn)=vecdp(2,nn)
827 vec(3,nn)=vecdp(3,nn)
828 vec(4,nn)=vecdp(4,nn)
829 vec(5,nn)=vecdp(5,nn)
830 vec(6,nn)=vecdp(6,nn)
831 vec(7,nn)=vecdp(7,nn)
832 vec(8,nn)=vecdp(8,nn)
833 vec(9,nn)=vecdp(9,nn)
subroutine sigeps38(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off, uvarbid, ismstr, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz)