36 1 X ,NSV ,NELEM ,NSN ,EMINX ,
37 2 NME ,ITASK ,XSAV ,IXS ,IXS16 ,
38 3 IXS20 ,IXS10 ,V ,A ,XMSRG,
45#include "implicit_f.inc"
65 INTEGER NSN,,ITASK,NME,
66 . NSV(*),NELEM(*),IXS(NIXS,*),IXS16(8,*),(12,*),
69 . x(3,*),v(3,*),a(3,*),xsav
73 INTEGER NSNF,NMEF,NSNL,NMEL,I, J, , K,I16,I20,,LLT16,
74 . LFT20,LLT20,LFT8,LLT8,LFT10,LLT10,I8,I10,
75 . INDEX16(MVSIZ),INDEX20(MVSIZ),INDEX8(MVSIZ),INDEX10(MVSIZ)
77 . xmsr(6),xslv(6),size_t ,xx,yy,zz
81 nsnf = 1 + itask*nsn / nthread
82 nsnl = (itask+1)*nsn / nthread
83 nmef = 1 + itask*nme / nthread
84 nmel = (itask+1)*nme / nthread
105 xx=x(1,j)+dt2*(v(1,j)+dt12*a(1,j))
106 yy=x(2,j)+dt2*(v(2,j)+dt12*a(2,j))
107 zz=x(3,j)+dt2*(v(3,j)+dt12*a(3,j))
108 xslv(1)=
max(xslv(1),xx-xsav(1,j))
109 xslv(2)=
max(xslv(2),yy-xsav(2,j))
110 xslv(3)=
max(xslv(3),zz-xsav(3,j))
111 xslv(4)=
min(xslv(4),xx-xsav(1,j))
112 xslv(5)=
min(xslv(5),yy-xsav(2,j))
113 xslv(6)=
min(xslv(6),zz-xsav(3,j))
140 IF(i16>=1.AND.i16<=numels16)
THEN
143 IF(llt16==mvsiz-1)
THEN
145 1 lft16,llt16 ,nelem,eminx,nmef ,nmel ,
146 2 x ,v ,a ,ixs ,ixs16,size_t,
147 3 xmsr ,index16,xsav )
150 ELSEIF(i20>=1.AND.i20<=numels20)
THEN
153 IF(llt20==mvsiz-1)
THEN
155 1 lft20,llt20 ,nelem,eminx,nmef ,nmel ,
156 2 x ,v ,a ,ixs ,ixs20,size_t,
157 3 xmsr ,index20,xsav )
163 IF(llt10==mvsiz-1)
THEN
165 1 lft10,llt10 ,nelem,eminx,nmef ,nmel ,
166 2 x ,v ,a ,ixs ,ixs10,size_t,
167 3 xmsr ,index10,xsav )
173 IF(llt8==mvsiz-1)
THEN
175 1 lft8 ,llt8 ,nelem,eminx,nmef ,nmel ,
176 2 x ,v ,a ,ixs ,size_t,
177 3 xmsr ,index8 ,xsav )
183 1 lft16,llt16 ,nelem,eminx,nmef ,nmel ,
184 2 x ,v ,a ,ixs ,ixs16,size_t,
185 3 xmsr ,index16,xsav )
187 1 lft20,llt20 ,nelem,eminx,nmef ,nmel ,
188 2 x ,v ,a ,ixs ,ixs20,size_t,
189 3 xmsr ,index20,xsav )
190 IF(llt8>0)
CALL i8box(
192 2 x ,v ,a ,ixs ,size_t,
193 3 xmsr ,index8 ,xsav )
195 1 lft10,llt10 ,nelem,eminx,nmef ,nmel ,
196 2 x ,v ,a ,ixs ,ixs10,size_t,
197 3 xmsr ,index10,xsav )
200 xslvg(1)=
max(xslvg(1),xslv(1))
201 xslvg(2)=
max(xslvg(2),xslv(2))
202 xslvg(3)=
max(xslvg(3),xslv(3))
203 xslvg(4)=
min(xslvg(4),xslv(4))
204 xslvg(5)=
min(xslvg(5),xslv(5))
205 xslvg(6)=
min(xslvg(6),xslv(6))
206 xmsrg(1)=
max(xmsrg(1),xmsr(1))
207 xmsrg(2)=
max(xmsrg(2),xmsr(2))
208 xmsrg(3)=
max(xmsrg(3),xmsr(3))
209 xmsrg(4)=
min(xmsrg(4),xmsr(4))
210 xmsrg(5)=
min(xmsrg(5),xmsr(5))
211 xmsrg(6)=
min(xmsrg(6),xmsr(6))
213#include "lockoff.inc"
223 SUBROUTINE i16box(LFT ,LLT ,NELEM,EMINX,NMEF,NMEL,
224 2 X ,V ,A ,IXS ,IXS16,SIZE,
229#include "implicit_f.inc"
233#include "com04_c.inc"
234#include "com08_c.inc"
238 INTEGER LFT ,LLT,NMEF,NMEL,
239 . IXS(NIXS,*),IXS16(8,*),NELEM(*),(*)
242 . X(3,*),V(3,*),A(3,*),EMINX(6,*),SIZE,XMSR(*),XSAV(3,*)
246 INTEGER I,J,K,L,NE,IFACE,IDIR,IPERM(8,2),N16
248 . an,ax,bn,bx,cn,cx,dx,dn,d4,d8,x1,x2,x3,x4,
249 . x9,x10,x11,x12,xc,xx,xn
250 DATA iperm / 2, 3, 4, 5, 1, 2, 3, 4,
251 2 6, 7, 8, 9, 5, 6, 7, 8/
456 n16= ne - numels8 - numels10 - numels20
458 j = ixs(iperm(1,iface),ne)
459 x1 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
460 xmsr(idir) =
max(xmsr(idir) ,x1-xsav(idir,j))
461 xmsr(idir+3)=
min(xmsr(idir+3),x1-xsav(idir,j))
462 j = ixs(iperm(2,iface),ne)
463 x2 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
464 xmsr(idir) =
max(xmsr(idir) ,x2-xsav(idir,j))
465 xmsr(idir+3)=
min(xmsr(idir+3),x2-xsav(idir,j))
466 j = ixs(iperm(3,iface),ne)
467 x3 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
468 xmsr(idir) =
max(xmsr(idir) ,x3-xsav(idir,j))
469 xmsr(idir+3)=
min(xmsr(idir+3),x3-xsav(idir,j))
470 j = ixs(iperm(4,iface),ne)
471 x4 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
472 xmsr(idir) =
max(xmsr(idir) ,x4-xsav(idir,j))
473 xmsr(idir+3)=
min(xmsr(idir+3),x4-xsav(idir,j))
474 j = ixs16(iperm(5,iface),n16)
475 x9 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
476 xmsr(idir) =
max(xmsr(idir) ,x9-xsav(idir,j))
477 xmsr(idir+3)=
min(xmsr(idir+3),x9-xsav(idir,j))
478 j = ixs16(iperm(6,iface),n16)
479 x10= x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
480 xmsr(idir) =
max(xmsr(idir) ,x10-xsav(idir,j))
481 xmsr(idir+3)=
min(xmsr(idir+3),x10-xsav(idir,j))
482 j = ixs16(iperm(7,iface),n16)
483 x11= x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
484 xmsr(idir) =
max(xmsr(idir) ,x11-xsav(idir,j))
485 xmsr(idir+3)=
min(xmsr(idir+3),x11-xsav(idir,j))
486 j = ixs16(iperm(8,iface),n16)
487 x12= x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
488 xmsr(idir) =
max(xmsr(idir) ,x12-xsav(idir,j))
489 xmsr(idir+3)=
min(xmsr(idir+3),x12-xsav(idir,j))
491 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
493 d4 = fourth * abs(x1-x2)
494 an =
min( x1 , x2 , x9-d4 )
495 ax =
max( x1 , x2 , x9+d4 )
497 d4 = fourth * abs(x3-x4)
498 bn =
min( x3 , x4 , x11-d4 )
499 bx =
max( x3 , x4 , x11+d4 )
501 d4 = fourth * abs(x12-x10)
502 cn =
min( x12 , x10 , xc-d4 )
503 cx =
max( x12 , x10 , xc+d4 )
505 d8 = one_over_8 *
max( ax-bn , bx-an )
507 dn =
max(
min( an , bn , cn-d4 ),
min(an , bn , cn) - d8 )
508 dx =
min(
max( ax , bx , cx+d4 ),
max( ax , bx , cx) + d8
510 eminx(idir,i) =
min( eminx(idir,i) , dn )
511 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
513 SIZE =
SIZE + dx - dn
528 SUBROUTINE i20box(LFT ,LLT ,NELEM,EMINX,NMEF,NMEL,
529 2 X ,V ,A ,IXS ,IXS20,SIZE,
534#include "implicit_f.inc"
538#include "com04_c.inc"
539#include "com08_c.inc"
543 INTEGER LFT ,LLT,NMEF,NMEL,
544 . IXS(NIXS,*),IXS20(12,*),NELEM(*),INDEX(*)
547 . X(3,*),V(3,*),A(3,*),EMINX(6,*),SIZE,(*),XSAV(3,*)
551 INTEGER I,J,,L,NE,IDIR,N20
553 . AN12,AX12,AN34,AX34,AN56,AX56,AN78,AX78,CN,CX,DX,DN,D4,D8,
554 . x1,x2,x3,x4,x5,x6,x7,x8,
555 . x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,xc,xx,xn
569 n20= ne - numels8 - numels10
572 x1 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
573 xmsr(idir) =
max(xmsr(idir) ,x1-xsav(idir,j))
574 xmsr(idir+3)=
min(xmsr(idir+3),x1-xsav(idir,j))
576 x2 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
577 xmsr(idir) =
max(xmsr(idir) ,x2-xsav(idir,j))
578 xmsr(idir+3)=
min(xmsr(idir+3),x2-xsav
580 x3 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
581 xmsr(idir) =
max(xmsr(idir) ,x3-xsav(idir,j))
582 xmsr(idir+3)=
min(xmsr(idir+3),x3-xsav(idir,j))
584 x4 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
585 xmsr(idir) =
max(xmsr(idir) ,x4-xsav(idir,j))
586 xmsr(idir+3)=
min(xmsr(idir+3),x4-xsav(idir,j))
588 x5 = x(idir,j)+dt2*(v(idir,j)+dt12*a
589 xmsr(idir) =
max(xmsr(idir) ,x5-xsav(idir,j))
590 xmsr(idir+3)=
min(xmsr(idir+3),x5-xsav(idir,j))
592 x6 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
593 xmsr(idir) =
max(xmsr(idir) ,x6-xsav(idir,j))
594 xmsr(idir+3)=
min(xmsr(idir+3),x6-xsav(idir,j))
596 x7 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
597 xmsr(idir) =
max(xmsr(idir) ,x7-xsav(idir,j))
598 xmsr(idir+3)=
min(xmsr(idir+3),x7-xsav(idir,j))
600 x8 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
601 xmsr(idir) =
max(xmsr(idir) ,x8-xsav(idir,j))
602 xmsr(idir+3)=
min(xmsr(idir+3),x8-xsav(idir,j))
606 x9 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
607 xmsr(idir) =
max(xmsr(idir) ,x9-xsav(idir,j))
608 xmsr(idir+3)=
min(xmsr(idir+3),x9-xsav(idir,j))
610 x9=0.5*(x(idir,ixs(2,ne))+x(idir,ixs(3,ne)))
614 x10 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
615 xmsr(idir) =
max(xmsr(idir) ,x10-xsav(idir,j))
616 xmsr(idir+3)=
min(xmsr(idir+3),x10-xsav(idir,j))
618 x10=0.5*(x(idir,ixs(3,ne))+x(idir,ixs(4,ne)))
622 x11 = x(idir,j)+dt2*(v(idir,j
623 xmsr(idir) =
max(xmsr(idir) ,x11-xsav(idir,j))
624 xmsr(idir+3)=
min(xmsr(idir+3),x11-xsav(idir,j))
626 x11=0.5*(x(idir,ixs(4,ne))+x(idir,ixs(5,ne)))
630 x12 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
631 xmsr(idir) =
max(xmsr(idir) ,x12-xsav(idir,j))
632 xmsr(idir+3)=
min(xmsr(idir+3),x12-xsav(idir,j))
634 x12=0.5*(x(idir,ixs(5,ne))+x(idir,ixs(2,ne)))
638 x13 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
639 xmsr(idir) =
max(xmsr(idir) ,x13-xsav(idir,j))
640 xmsr(idir+3)=
min(xmsr(idir+3),x13-xsav(idir,j))
642 x13=0.5*(x(idir,ixs(2,ne))+x(idir,ixs(6,ne)))
646 x14 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
647 xmsr(idir) =
max(xmsr(idir) ,x14-xsav(idir,j))
648 xmsr(idir+3)=
min(xmsr(idir+3),x14-xsav(idir,j))
650 x14=0.5*(x(idir,ixs(3,ne))+x(idir,ixs(6,ne)))
654 x15 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
655 xmsr(idir) =
max(xmsr(idir) ,x15-xsav(idir,j))
656 xmsr(idir+3)=
min(xmsr(idir+3),x15-xsav(idir,j))
658 x15=0.5*(x(idir,ixs(4,ne))+x(idir,ixs(8,ne)))
662 x16 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
663 xmsr(idir) =
max(xmsr(idir) ,x16-xsav(idir,j))
664 xmsr(idir+3)=
min(xmsr(idir+3),x16-xsav(idir,j))
666 x16=0.5*(x(idir,ixs(5,ne))+x(idir,ixs(9,ne)))
670 x17 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
671 xmsr(idir) =
max(xmsr(idir) ,x17-xsav(idir,j))
672 xmsr(idir+3)=
min(xmsr(idir+3),x17-xsav(idir,j))
674 x17=0.5*(x(idir,ixs(6,ne))+x(idir,ixs(7,ne)))
678 x18 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
679 xmsr(idir) =
max(xmsr(idir) ,x18-xsav(idir,j))
680 xmsr(idir+3)=
min(xmsr(idir+3),x18-xsav(idir,j))
682 x18=0.5*(x(idir,ixs(7,ne))+x(idir,ixs(8,ne)))
686 x19 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
687 xmsr(idir) =
max(xmsr(idir) ,x19-xsav(idir,j))
688 xmsr(idir+3)=
min(xmsr(idir+3),x19-xsav(idir,j))
690 x19=0.5*(x(idir,ixs(8,ne))+x(idir,ixs(9,ne)))
694 x20 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
695 xmsr(idir) =
max(xmsr(idir) ,x20-xsav(idir,j))
696 xmsr(idir+3)=
min(xmsr(idir+3),x20-xsav(idir,j))
698 x20=0.5*(x(idir,ixs(6,ne))+x(idir,ixs(9,ne)))
704 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
706 d4 = fourth * abs(x1-x2)
707 an12 =
min( x1 , x2 , x9-d4 )
708 ax12 =
max( x1 , x2 , x9+d4 )
710 d4 = fourth * abs(x3-x4)
711 an34 =
min( x3 , x4 , x11-d4 )
712 ax34 =
max( x3 , x4 , x11+d4 )
714 d4 = fourth * abs(x12-x10)
715 cn =
min( x12 , x10 , xc-d4 )
716 cx =
max( x12 , x10 , xc+d4 )
718 d8 = one_over_8 *
max( ax12-an34 , ax34-an12 )
720 dn =
max(
min(an12 , an34 , cn-d4 ),
721 .
min(an12 , an34 , cn) - d8 )
722 dx =
min(
max(ax12 , ax34 , cx+d4 ),
723 .
max(ax12 , ax34 , cx) + d8 )
725 eminx(idir,i) =
min( eminx(idir,i) , dn )
726 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
730 xc = half*(x17+x18+x19+x20) - fourth*(x5+x6+x7+x8)
732 d4 = fourth * abs(x5-x6)
733 an56 =
min( x5 , x6 , x17-d4 )
734 ax56 =
max( x5 , x6 , x17+d4 )
736 d4 = fourth * abs(x7-x8)
737 an78 =
min( x7 , x8 , x19-d4 )
738 ax78 =
max( x7 , x8 , x19+d4 )
740 d4 = fourth * abs(x20-x18)
741 cn =
min( x20 , x18 , xc-d4 )
742 cx =
max( x20 , x18 , xc+d4 )
744 d8 = one_over_8 *
max( ax56-an78 , ax78-an56 )
746 dn =
max(
min(an56 , an78 , cn-d4 ),
747 .
min(an56 , an78 , cn) - d8 )
748 dx =
min(
max(ax56 , ax78 , cx+d4 ),
749 .
max(ax56 , ax78 , cx) + d8 )
751 eminx(idir,i) =
min( eminx(idir,i) , dn )
752 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
756 xc = half*(x9+x14+x17+x13) - fourth*(x1+x2+x6+x5)
758 d4 = fourth * abs(x13-x14)
759 cn =
min( x13 , x14 , xc-d4 )
760 cx =
max( x13 , x14 , xc+d4 )
762 d8 = one_over_8 *
max( ax12-an56 , ax56-an12 )
764 dn =
max(
min(an12 , an56 , cn-d4 ),
765 .
min(an12 , an56 , cn) - d8 )
766 dx =
min(
max(ax12 , ax56 , cx+d4 ),
767 .
max(ax12 , ax56 , cx) + d8 )
769 eminx(idir,i) =
min( eminx(idir,i) , dn )
770 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
774 xc = half*(x11+x15+x19+x16) - fourth*(x3+x4+x8+x7)
776 d4 = fourth * abs(x16-x15)
777 cn =
min( x15 , x16 , xc-d4 )
778 cx =
max( x15 , x16 , xc+d4 )
780 d8 = one_over_8 *
max( ax34-an78 , ax78-an34 )
782 dn =
max(
min(an34 , an78 , cn-d4 ),
783 .
min(an34 , an78 , cn) - d8 )
784 dx =
min(
max(ax34 , ax78 , cx+d4 ),
785 .
max(ax34 , ax78 , cx) + d8 )
787 eminx(idir,i) =
min( eminx(idir,i) , dn )
788 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
792 xc = half*(x12+x13+x20+x16) - fourth*(x4+x1+x5+x8)
794 d4 = fourth * abs(x4-x1)
795 an12 =
min( x4 , x1 , x12-d4 )
796 ax12 =
max( x4 , x1 , x12+d4 )
798 d4 = fourth * abs(x8-x5)
799 an34 =
min( x8 , x5 , x20-d4 )
800 ax34 =
max( x8 , x5 , x20+d4 )
802 d4 = fourth * abs(x16-x13)
803 cn =
min( x16 , x13 , xc-d4 )
804 cx =
max( x16 , x13 , xc+d4 )
806 d8 = one_over_8 *
max( ax12-an34 , ax34-an12 )
808 dn =
max(
min(an12 , an34 , cn-d4 ),
809 .
min(an12 , an34 , cn) - d8 )
810 dx =
min(
max(ax12 , ax34 , cx+d4 ),
811 .
max(ax12 , ax34 , cx) + d8 )
813 eminx(idir,i) =
min( eminx(idir,i) , dn )
814 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
818 xc = half*(x10+x14+x18+x15) - fourth*(x3+x2+x6+x7)
820 d4 = fourth * abs(x3-x2)
821 an12 =
min( x3 , x2 , x10-d4 )
822 ax12 =
max( x3 , x2 , x10+d4 )
824 d4 = fourth * abs(x7-x6)
825 an34 =
min( x7 , x6 , x18-d4 )
826 ax34 =
max( x7 , x6 , x18+d4 )
828 d4 = fourth * abs(x15-x14)
829 cn =
min( x15 , x14 , xc-d4 )
830 cx =
max( x15 , x14 , xc+d4 )
832 d8 = one_over_8*
max( ax12-an34 , ax34-an12 )
834 dn =
max(
min(an12 , an34 , cn-d4 ),
835 .
min(an12 , an34 , cn) - d8 )
836 dx =
min(
max(ax12 , ax34 , cx+d4 ),
837 .
max(ax12 , ax34 , cx) + d8 )
839 eminx(idir,i) =
min( eminx(idir,i) , dn )
840 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
842 SIZE =
SIZE + dx - dn
855 SUBROUTINE i10box(LFT ,LLT ,NELEM,EMINX,NMEF,NMEL,
856 2 X ,V ,A ,IXS ,IXS10,SIZE,
861#include
"implicit_f.inc"
865#include "com04_c.inc"
866#include "com08_c.inc"
870 INTEGER LFT ,LLT,NMEF,NMEL,
871 . IXS(NIXS,*),IXS10(6,*),NELEM(*),INDEX(*)
874 . X(3,*),V(3,*),A(3,*),EMINX(6,*),SIZE,XMSR(*),XSAV(3,*)
878 INTEGER I,J,K,L,NE,IDIR,N10
880 . an12,ax12,an34,ax34,an56,ax56,an78,ax78,cn,cx,dx,dn,d4,d8,
881 . x1,x2,x3,x4,x5,x6,x7,x8,
882 . x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,xc,xx,xn
899 x1 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
900 xmsr(idir) =
max(xmsr(idir) ,x1-xsav(idir,j))
901 xmsr(idir+3)=
min(xmsr(idir+3),x1-xsav(idir,j))
903 x2 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
904 xmsr(idir) =
max(xmsr(idir) ,x2-xsav(idir,j))
905 xmsr(idir+3)=
min(xmsr(idir+3),x2-xsav(idir,j))
907 x3 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
908 xmsr(idir) =
max(xmsr(idir) ,x3-xsav(idir,j))
909 xmsr(idir+3)=
min(xmsr(idir+3),x3-xsav(idir,j))
911 x4 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
912 xmsr(idir) =
max(xmsr(idir) ,x4-xsav(idir,j))
913 xmsr(idir+3)=
min(xmsr(idir+3),x4-xsav(idir,j))
916 x5 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
917 xmsr(idir) =
max(xmsr(idir) ,x5-xsav(idir,j))
918 xmsr(idir+3)=
min(xmsr(idir+3),x5-xsav(idir,j))
920 x6 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
921 xmsr(idir) =
max(xmsr(idir) ,x6-xsav(idir,j))
922 xmsr(idir+3)=
min(xmsr(idir+3),x6-xsav(idir,j))
924 x7 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
925 xmsr(idir) =
max(xmsr(idir) ,x7-xsav(idir,j))
926 xmsr(idir+3)=
min(xmsr(idir+3),x7-xsav(idir,j))
928 x8 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
929 xmsr(idir) =
max(xmsr(idir) ,x8-xsav(idir,j))
930 xmsr(idir+3)=
min(xmsr(idir+3),x8-xsav(idir,j))
932 x9 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
933 xmsr(idir) =
max(xmsr(idir) ,x9-xsav(idir,j))
934 xmsr(idir+3)=
min(xmsr(idir+3),x9-xsav(idir,j))
936 x10 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
937 xmsr(idir) =
max(xmsr(idir) ,x10-xsav(idir
938 xmsr(idir+3)=
min(xmsr(idir+3),x10-xsav(idir,j))
940 xx=
max(x1,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9,x10)
941 xn=
min(x1,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9,x10)
942 eminx(idir,i) =
min( eminx(idir,i) , xn )
943 eminx(idir+3,i) =
max( eminx(idir+3,i), xx )
947 xc = (two*(x5+x6+x7) - (x1+x2+x3))* third
948 eminx(idir,i) =
min( eminx(idir,i) , xc )
949 eminx(idir+3,i) =
max( eminx(idir+3,i), xc )
951 xc = (two*(x5+x8+x9) - (x1+x2+x4))*third
952 eminx(idir,i) =
min( eminx(idir,i) , xc )
953 eminx(idir+3,i) =
max( eminx(idir+3,i), xc )
955 xc = (two*(x6+x9+x10) - (x2+x3+x4)) * third
956 eminx(idir,i) =
min( eminx(idir,i) , xc )
957 eminx(idir+3,i) =
max( eminx(idir+3,i), xc )
959 xc = (two*(x7+x8+x10) - (x3+x1+x4)) * third
960 eminx(idir,i) =
min( eminx(idir,i) , xc )
961 eminx(idir+3,i) =
max( eminx(idir+3,i), xc )
976 SUBROUTINE i8box(LFT ,LLT ,NELEM,EMINX,NMEF,NMEL,
977 2 X ,V ,A ,IXS ,SIZE,
982#include "implicit_f.inc"
986#include "com08_c.inc"
990 INTEGER LFT ,LLT,NMEF,NMEL,
991 . IXS(NIXS,*),NELEM(*),INDEX(*)
994 . X(3,*),V(3,*),A(3,*),EMINX(6,*),SIZE,XMSR(*),XSAV(3,*)
998 INTEGER I,J,K,L,NE,IDIR,N10
1000 . AN12,AX12,AN34,AX34,AN56,AX56,AN78,AX78,CN,CX,DX,DN,D4,D8,
1001 . X1,X2,X3,X4,X5,X6,X7,X8,XC,XX,XN
1017 x1 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1018 xmsr(idir) =
max(xmsr(idir) ,x1-xsav(idir,j))
1019 xmsr(idir+3)=
min(xmsr(idir+3),x1-xsav(idir,j))
1021 x2 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1022 xmsr(idir) =
max(xmsr(idir) ,x2-xsav(idir,j))
1023 xmsr(idir+3)=
min(xmsr(idir+3),x2-xsav(idir,j))
1025 x3 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1026 xmsr(idir) =
max(xmsr(idir) ,x3-xsav(idir,j))
1027 xmsr(idir+3)=
min(xmsr(idir+3),x3-xsav(idir,j))
1029 x4 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1030 xmsr(idir) =
max(xmsr(idir) ,x4-xsav(idir,j))
1031 xmsr(idir+3)=
min(xmsr(idir+3),x4-xsav(idir,j))
1033 x5 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1034 xmsr(idir) =
max(xmsr(idir) ,x5-xsav(idir,j))
1035 xmsr(idir+3)=
min(xmsr(idir+3),x5-xsav(idir,j))
1037 x6 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1038 xmsr(idir) =
max(xmsr(idir) ,x6-xsav(idir,j))
1039 xmsr(idir+3)=
min(xmsr(idir+3),x6-xsav(idir,j))
1041 x7 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1042 xmsr(idir) =
max(xmsr(idir) ,x7-xsav(idir,j))
1043 xmsr(idir+3)=
min(xmsr(idir+3),x7-xsav(idir,j))
1045 x8 = x(idir,j)+dt2*(v(idir,j)+dt12*a(idir,j))
1046 xmsr(idir) =
max(xmsr(idir) ,x8-xsav(idir,j))
1047 xmsr(idir+3)=
min(xmsr(idir+3),x8-xsav(idir,j))
1050 dx=
max(x1,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 )
1051 dn=
min(x1,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 )
1053 eminx(idir,i) =
min( eminx(idir,i) , dn )
1054 eminx(idir+3,i) =
max( eminx(idir+3,i), dx )
1056 SIZE =
SIZE + dx - dn