159
160
161
162 USE timer_mod
164 USE intbufdef_mod
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188#include "implicit_f.inc"
189#include "comlock.inc"
190
191
192
193#include "com01_c.inc"
194#include "com04_c.inc"
195#include "com08_c.inc"
196#include "param_c.inc"
197#include "timeri_c.inc"
198 COMMON /i17mainc/bminma,nmesr
199 INTEGER NMESR
201 . bminma(6)
202
203
204
205 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
206 INTEGER NIN,ITASK , NME, NMES, RETRI, NME_T, ESH_T
207 INTEGER IPARI(NPARI,NINTER),
208 . IXS(NIXS,*) ,IXS16(8,*) ,IXS20(12,*),WEIGHT(*),
209 . ISENDTO(*),IRECVFROM(*),IAD_ELEM(*),FR_ELEM(*),
210 . ITAB(*)
211
213 . x(3,*), v(3,*), eminx(6,*)
214
215 TYPE(INTBUF_STRUCT_) INTBUF_TAB
216
217 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
218
219
220
221 INTEGER NAD,EAD,LWAT,RESULT,
222 . IGN,IGE,MULTIMP,NOINT,I,MX_CAND, NB_N_B
223
225 . startt, stopt,xx,xy,xz,tzinf,minbox,dist,
226 . xmaxl, ymaxl, zmaxl, xminl, yminl, zminl,
227 . azero(3,numnod)
228
229
230
231 DO i=1,numnod
232 azero(1,i) = zero
233 azero(2,i) = zero
234 azero(3,i) = zero
235 ENDDO
236 noint = ipari(15,nin)
237 multimp = ipari(23,nin)
238 ign = ipari(36,nin)
239 ige = ipari(34,nin)
240 lwat = 4*(nme+100)+4*(nmes+100)
241
242 mx_cand=multimp*ipari(18,nin)
243 startt = intbuf_tab%VARIABLES(3)
244 stopt = intbuf_tab%VARIABLES(11)
245 IF(startt>tt) RETURN
246 IF(tt>stopt) RETURN
247
248
249
250
251
253 1 itask,intbuf_tab%FROTM,intbuf_tab%FROTS,nme,nmes)
254
255
256
257 dist = intbuf_tab%VARIABLES(5)
259
260 IF(dist<zero) THEN
261 retri=1
262 tzinf = intbuf_tab%VARIABLES(8)
263 minbox = intbuf_tab%VARIABLES(12)
264 intbuf_tab%VARIABLES(5) = abs(intbuf_tab%VARIABLES(5))
265
266 bminma(1)=ep30
267 bminma(2)=ep30
268 bminma(3)=ep30
269 bminma(4)=-ep30
270 bminma(5)=-ep30
271 bminma(6)=-ep30
272
273
274
275 ipari(35,nin) = 0
276
278
279
280
282 1 x ,v ,azero ,ixs ,ixs16,
283 2 nmes ,nme_t ,esh_t ,igrbric(ige)%ENTITY,igrbric(ign)%ENTITY,
284 3 eminx ,itask ,intbuf_tab%XSAV,xminl ,yminl ,
285 3 zminl ,xmaxl ,ymaxl ,zmaxl )
286#include "lockon.inc"
287 bminma(1) =
min(bminma(1),xminl)
288 bminma(2) =
min(bminma(2),yminl)
289 bminma(3) =
min(bminma(3),zminl)
290 bminma(4) =
max(bminma(4),xmaxl)
291 bminma(5) =
max(bminma(5),ymaxl)
292 bminma(6) =
max(bminma(6),zmaxl)
293#include "lockoff.inc"
294
296 IF(itask==0)THEN
297 IF(abs(bminma(6)-bminma(3))>2*ep30.OR.
298 + abs(bminma(5)-bminma(2))>2*ep30.OR.
299 + abs(bminma(4)-bminma(1))>2*ep30)THEN
300 CALL ancmsg(msgid=87,anmode=aninfo,
301 . i1=noint)
303 END IF
304 bminma(1) = bminma(1) - tzinf
305 bminma(2) = bminma(2) - tzinf
306 bminma(3) = bminma(3) - tzinf
307 bminma(4) = bminma(4) + tzinf
308 bminma(5) = bminma(5) + tzinf
309 bminma(6) = bminma(6) + tzinf
310 nmesr = 0
311 IF(nspmd>1)THEN
312
313
314
316 1 igrbric(ign)%ENTITY ,nmes ,x ,v ,intbuf_tab%FROTS ,
317 2 intbuf_tab%KS,bminma ,weight,nin ,isendto ,
318 3 irecvfrom ,nmesr ,ixs ,ixs16,eminx(1,nme+1))
319 END IF
320 END IF
321 nb_n_b = 1
322
324
326 1 igrbric(ign)%ENTITY,ixs ,ixs16 ,ixs20 ,igrbric(ige)%ENTITY,
327 2 nme_t ,lwat ,nmes ,intbuf_tab%CAND_E,
328 . intbuf_tab%CAND_N,
329 3 noint ,ipari(35,nin) ,tzinf ,minbox ,eminx ,
330 4 intbuf_tab%XSAV,itask ,x ,azero ,azero ,
331 5 mx_cand ,eminx(1,nme+1),esh_t ,intbuf_tab%FROTS,intbuf_tab%KS,
332 6 nin ,nmesr ,nb_n_b ,bminma )
333
335
336 IF(nspmd>1)THEN
337
338 IF (imonm > 0)
CALL startime(timers,26)
339 intbuf_tab%VARIABLES(5) = -intbuf_tab%VARIABLES(5)
340 result = 0
341
343 1 result ,nmes ,intbuf_tab%CAND_N,ipari(35,nin),nin,
344 2 nmesr )
345
346
347 IF (imonm > 0)
CALL stoptime(timers,26)
348
349
350 END IF
351 ENDIF
352
353 RETURN
subroutine i17buce_pena(neles, ixs, ixs16, ixs20, nelem, nme, lwat, nmes, cand_e, cand_n, noint, i_stok_glob, tzinf, minbox, eminxm, xsav, itask, x, v, a, mx_cand, eminxs, esh_t, frots, ks, nin, nmesr, nb_n_b, bminma)
subroutine i17frot(itask, frotm, frots, nme, nse)
subroutine i17xsave(x, v, a, ixs, ixs16, nmes, nme_t, esh_t, nelem, neles, eminxm, itask, xsav, xmin, ymin, zmin, xmax, ymax, zmax)
subroutine spmd_tri17gat(result, nmes, cand_n, i_stok, nin, nmesr)
subroutine spmd_tri17box(nelems, nmes, x, v, frots, ks, bminmal, weight, nin, isendto, ircvfrom, nmesr, ixs, ixs16, eminxs)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine startime(event, itask)
subroutine stoptime(event, itask)