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