39 use element_mod , only : nixs
40
41
42
43#include "implicit_f.inc"
44#include "comlock.inc"
45
46
47
48#include "mvsiz_p.inc"
49
50
51
52#include "com04_c.inc"
53#include "task_c.inc"
54
55
56
57 INTEGER ITASK,NME,
58 . NELEM(*),IXS(NIXS,*),IXS16(8,*),IXS20(12,*)
60 . x(3,*),v(3,*),a(3,*),xsav(3,*),eminx(6,*),
61 . xmsr_g(6),size_t_g
62
63
64
65 INTEGER NMEF,NMEL,I,I16,I20,LFT16,LLT16,
66 . LFT20,LLT20,INDEX16(MVSIZ),INDEX20(MVSIZ)
68 . xmsr(6), size_t
69
70
71
72 nmef = 1 + itask*nme / nthread
73 nmel = (itask+1)*nme / nthread
74
75
76
77 xmsr(1) = -ep30
78 xmsr(2) = -ep30
79 xmsr(3) = -ep30
80 xmsr(4) = ep30
81 xmsr(5) = ep30
82 xmsr(6) = ep30
83 size_t = zero
84
85
86
87 DO i=nmef,nmel
88 eminx(1,i) = ep30
89 eminx(2,i) = ep30
90 eminx(3,i) = ep30
91 eminx(4,i) = -ep30
92 eminx(5,i) = -ep30
93 eminx(6,i) = -ep30
94 ENDDO
95
96 lft16=1
97 llt16=0
98 lft20=1
99 llt20=0
100 DO i=nmef,nmel
101 i20=nelem(i)-numels8-numels10
102 i16=i20-numels20
103 IF(i16>=1.AND.i16<=numels16)THEN
104 llt16=llt16+1
105 index16(llt16)=i
106 IF(llt16==mvsiz-1)THEN
108 1 lft16,llt16 ,nelem,eminx,nmef ,nmel ,
109 2 x ,v ,a ,ixs ,ixs16,size_t,
110 3 xmsr ,index16,xsav )
111 llt16=0
112 ENDIF
113 ELSEIF(i20>=1.AND.i20<=numels20)THEN
114 llt20=llt20+1
115 index20(llt20)=i
116 IF(llt20==mvsiz-1)THEN
118 1 lft20,llt20 ,nelem,eminx,nmef ,nmel ,
119 2 x ,v ,a ,ixs ,ixs20,size_t,
120 3 xmsr ,index20,xsav )
121 llt20=0
122 ENDIF
123 ENDIF
124 END DO
126 1 lft16,llt16 ,nelem,eminx,nmef ,nmel ,
127 2 x ,v ,a ,ixs ,ixs16,size_t,
128 3 xmsr ,index16,xsav )
130 1 lft20,llt20 ,nelem,eminx,nmef ,nmel ,
131 2 x ,v ,a ,ixs ,ixs20,size_t,
132 3 xmsr ,index20,xsav )
133
134#include "lockon.inc"
135 xmsr_g(1)=
max(xmsr_g(1),xmsr(1))
136 xmsr_g(2)=
max(xmsr_g(2),xmsr(2))
137 xmsr_g(3)=
max(xmsr_g(3),xmsr(3))
138 xmsr_g(4)=
min(xmsr_g(4),xmsr(4))
139 xmsr_g(5)=
min(xmsr_g(5),xmsr(5))
140 xmsr_g(6)=
min(xmsr_g(6),xmsr(6))
141 size_t_g = size_t_g + size_t
142#include "lockoff.inc"
143
144 RETURN
subroutine i16box(lft, llt, nelem, eminx, nmef, nmel, x, v, a, ixs, ixs16, size, xmsr, index, xsav)
subroutine i20box(lft, llt, nelem, eminx, nmef, nmel, x, v, a, ixs, ixs20, size, xmsr, index, xsav)