31 1 X ,NSV ,MSR ,NSN ,NMN ,
32 2 ITASK ,XSAV ,PENIS ,PENIM ,INACTI,
33 3 NRTS ,NRTM ,STFS ,CAND_S,V ,
34 6 XSLV_G,XMSR_G,VSLV_G,VMSR_G,NIN )
38#include "implicit_f.inc"
50 INTEGER NSN,NMN,ITASK,NSV(*),MSR(*),INACTI
55 . vslv_g(*), vmsr_g(*)
59 INTEGER NSNF,NMNF,NSNL,NMNL,I,J,II,
60 . NRTSF, NRTSL, NRTMF, NRTML
62 . XSLV(6),XMSR(6), VSLV(6), VMSR(6)
69 nrtsf = 1 + itask * nrts / nthread
70 nrtsl = (itask+1) * nrts / nthread
71 IF(inacti==5.OR.inacti==6)
THEN
72 nrtmf = 1 + itask * nrtm / nthread
73 nrtml = (itask+1) * nrtm / nthread
78 IF(nspmd>1 .AND. tt > zero)
THEN
93 penis(1,i)=
min(penis(1,i),penis(2,i))
99 penim(1,i)=
min(penim(1,i),penim(2,i))
111 stfs(i)=
max(stfs(i),zero)
144 nsnf = 1 + itask*nsn / nthread
145 nsnl = (itask+1)*nsn / nthread
146 nmnf = 1 + itask*nmn / nthread
147 nmnl = (itask+1)*nmn / nthread
149 IF(nsn+nmn<numnod)
THEN
156 xslv(1)=
max(xslv(1),x(1,j)-xsav(1,i))
157 xslv(2)=
max(xslv(2),x(2,j)-xsav(2,i))
158 xslv(3)=
max(xslv(3),x(3,j)-xsav(3,i))
159 xslv(4)=
min(xslv(4),x(1,j)-xsav(1,i))
160 xslv(5)=
min(xslv(5),x(2,j)-xsav(2,i))
161 xslv(6)=
min(xslv(6),x(3,j)-xsav(3,i))
163 vslv(1)=
max(vslv(1),v(1,j))
164 vslv(2)=
max(vslv(2),v(2,j))
165 vslv(3)=
max(vslv(3),v(3,j))
166 vslv(4)=
min(vslv(4),v(1,j))
167 vslv(5)=
min(vslv(5),v(2,j))
168 vslv(6)=
min(vslv(6),v(3,j))
179 xmsr(1)=
max(xmsr(1),x(1,j)-xsav(1,ii))
180 xmsr(2)=
max(xmsr(2),x(2,j)-xsav(2,ii))
181 xmsr(3)=
max(xmsr(3),x(3,j)-xsav(3,ii))
182 xmsr(4)=
min(xmsr(4),x(1,j)-xsav(1,ii))
183 xmsr(5)=
min(xmsr(5),x(2,j)-xsav(2,ii))
184 xmsr(6)=
min(xmsr(6),x(3,j)-xsav(3,ii))
186 vmsr(1)=
max(vmsr(1),v(1,j))
187 vmsr(2)=
max(vmsr(2),v(2,j))
188 vmsr(3)=
max(vmsr(3),v(3,j))
189 vmsr(4)=
min(vmsr(4),v(1,j))
190 vmsr(5)=
min(vmsr(5),v(2,j))
191 vmsr(6)=
min(vmsr(6),v(3,j))
203 xslv(1)=
max(xslv(1),x(1,j)-xsav(1,j))
204 xslv(2)=
max(xslv(2),x(2,j)-xsav(2,j))
205 xslv(3)=
max(xslv(3),x(3,j)-xsav(3,j))
206 xslv(4)=
min(xslv(4),x(1,j)-xsav(1,j))
207 xslv(5)=
min(xslv(5),x(2,j)-xsav(2,j))
208 xslv(6)=
min(xslv(6),x(3,j)-xsav(3,j))
210 vslv(1)=
max(vslv(1),v(1,j))
211 vslv(2)=
max(vslv(2),v(2,j))
212 vslv(3)=
max(vslv(3),v(3,j))
213 vslv(4)=
min(vslv(4),v(1,j))
214 vslv(5)=
min(vslv(5),v(2,j))
215 vslv(6)=
min(vslv(6),v(3,j))
225 xmsr(1)=
max(xmsr(1),x(1,j)-xsav(1,j))
226 xmsr(2)=
max(xmsr(2),x(2,j)-xsav(2,j))
227 xmsr(3)=
max(xmsr(3),x(3,j)-xsav(3,j))
228 xmsr(4)=
min(xmsr(4),x(1,j)-xsav(1,j))
229 xmsr(5)=
min(xmsr(5),x(2,j)-xsav(2,j))
230 xmsr(6)=
min(xmsr(6),x(3,j)-xsav(3,j))
232 vmsr(1)=
max(vmsr(1),v(1,j))
233 vmsr(2)=
max(vmsr(2),v(2,j))
234 vmsr(3)=
max(vmsr(3),v(3,j))
235 vmsr(4)=
min(vmsr(4),v(1,j))
236 vmsr(5)=
min(vmsr(5),v(2,j))
237 vmsr(6)=
min(vmsr(6),v(3,j))
245 xslv_g(1)=
max(xslv_g(1),xslv(1))
246 xslv_g(2)=
max(xslv_g(2),xslv(2))
247 xslv_g(3)=
max(xslv_g(3),xslv(3))
248 xslv_g(4)=
min(xslv_g(4),xslv(4))
249 xslv_g(5)=
min(xslv_g(5),xslv(5))
250 xslv_g(6)=
min(xslv_g(6),xslv(6))
251 xmsr_g(1)=
max(xmsr_g(1),xmsr(1))
252 xmsr_g(2)=
max(xmsr_g(2),xmsr(2))
253 xmsr_g(3)=
max(xmsr_g(3),xmsr(3))
254 xmsr_g(4)=
min(xmsr_g(4),xmsr(4))
255 xmsr_g(5)=
min(xmsr_g(5),xmsr(5))
256 xmsr_g(6)=
min(xmsr_g(6),xmsr(6))
258 vslv_g(1)=
max(vslv_g(1),vslv(1))
259 vslv_g(2)=
max(vslv_g(2),vslv(2))
260 vslv_g(3)=
max(vslv_g(3),vslv(3))
261 vslv_g(4)=
min(vslv_g(4),vslv(4))
262 vslv_g(5)=
min(vslv_g(5),vslv(5))
263 vslv_g(6)=
min(vslv_g(6),vslv(6))
264 vmsr_g(1)=
max(vmsr_g(1),vmsr(1))
265 vmsr_g(2)=
max(vmsr_g(2),vmsr(2))
266 vmsr_g(3)=
max(vmsr_g(3),vmsr(3))
267 vmsr_g(4)=
min(vmsr_g(4),vmsr(4))
268 vmsr_g(5)=
min(vmsr_g(5),vmsr(5))
269 vmsr_g(6)=
min(vmsr_g(6),vmsr(6))
270#include "lockoff.inc"
subroutine i11buce_crit(x, nsv, msr, nsn, nmn, itask, xsav, penis, penim, inacti, nrts, nrtm, stfs, cand_s, v, xslv_g, xmsr_g, vslv_g, vmsr_g, nin)