37 1 BPE ,PE ,BPN ,PN ,NSN ,
38 2 TZINF ,IXS ,IXS16 ,IXS20 ,NELEM ,
39 3 NSV ,MAXSIZ ,CAND_N ,CAND_E ,MINBOX ,
40 5 CONT ,NB_N_B ,EMINX ,I_STOK_GLOB,NME ,
41 6 ITASK ,NOINT ,X ,V ,A ,
42 7 MX_CAND,IXS10 ,ESH_T )
47 use element_mod ,
only : nixs
51#include "implicit_f.inc"
64 INTEGER MAXSIZ,NB_N_B,I_STOK_GLOB,NME,NSN ,ITASK
70 . x(3,*),v(3,*),a(3,*),eminx(6,*),
71 . minbox,tzinf,xmin,ymin,zmin,xmax,
ymax,zmax
76 PARAMETER (I_ADD_MAX = 1001)
77 integer i,j,i_add,i_stok,l,nb_nc,nb_ec,cont
78 INTEGER ADD(2,) ,PROV_N(MVSIZ),PROV_E(MVSIZ)
98 xmin =
min( xmin , eminx(1,i) )
99 ymin =
min( ymin , eminx(2,i) )
100 zmin =
min( zmin , eminx(3,i) )
101 xmax =
max( xmax , eminx(4,i) )
103 zmax =
max( zmax , eminx(6,i) )
134 IF(x(1,j)+dt2*(v(1,j)+dt12*a(1,j))>=xmin.AND.
135 . x(1,j)+dt2*(v(1,j)+dt12*a(1,j))<=xmax.AND.
136 . x(2,j)+dt2*(v(2,j)+dt12*a(2,j))>=ymin.AND.
137 . x(2,j)+dt2*(v(2,j)+dt12*a(2,j))<=
ymax.AND.
138 . x(3,j)+dt2*(v(3,j)+dt12*a(3,j))>=zmin.AND.
139 . x(3,j)+dt2*(v(3,j)+dt12*a(3,j))<=zmax)
THEN
167 1 bpe ,pe ,bpn ,pn ,add ,
168 2 x ,nb_nc ,nb_ec ,xyzm ,i_add ,
169 3 nsv ,maxsiz ,cand_n ,cand_e ,minbox ,
170 4 cont ,nb_n_b ,i_add_max,eminx ,nelem ,
171 5 i_stok ,ixs ,ixs16 ,ixs20 ,tzinf ,
172 6 i_stok_glob,prov_n ,prov_e ,v ,a ,
184 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
189 CALL ancmsg(msgid=85,anmode=aninfo,i1=noint)
191 ELSEIF(cont==-2)
THEN
192 CALL ancmsg(msgid=86,anmode=aninfo,i1=noint)
195 CALL ancmsg(msgid=90,anmode=aninfo,i1=noint)
212 1 BPE ,PE ,BPN ,PN ,ADD ,
213 2 X ,NB_NC ,NB_EC ,XYZM ,I_ADD ,
214 3 NSV ,MAXSIZ ,CAND_N ,CAND_E ,MINBOX ,
215 4 CONT ,NB_N_B ,I_ADD_MAX,EMINX ,NELEM ,
216 5 I_STOK ,IXS ,IXS16 ,IXS20 ,TZINF ,
217 6 I_STOK_GLOB,PROV_N ,PROV_E ,V ,A ,
219 use element_mod ,
only : nixs
223#include "implicit_f.inc"
227#include "mvsiz_p.inc"
231#include "com04_c.inc"
232#include "com08_c.inc"
280 INTEGER NB_NC,NB_EC,I_ADD,MAXSIZ,I_STOK_GLOB,I_STOK,MX_CAND,
281 . NB_N_B,I_ADD_MAX,CONT ,IXS(NIXS,*),IXS16(8,*),
282 . ADD(2,*),BPE(*),PE(*),BPN(*),PN(*),
283 . (*),CAND_N(*),CAND_E(*),NELEM(*),
284 . PROV_N(*) ,PROV_E(*) ,IXS20(12,*), IXS10(6,*)
287 . X(3,*),V(3,*),(3,*),XYZM(6,*),EMINX(6,*),
292 INTEGER NB_NCN,NB_NCN1,NB_ECN,ADDNN,ADDNE,I,J,DIR,
293 . nn,ne,le,l,ncand_prov,n16,n20,n8,n10
296 . dx,dy,dz,dsup,seuil,xx,yy,zz
307 IF(add(2,i_add)+nb_ec>maxsiz)
THEN
320 IF(nb_ec/=0.AND.nb_nc/=0)
THEN
322 dx = xyzm(4,i_add) - xyzm(1,i_add)
324 dz = xyzm(6,i_add) - xyzm(3,i_add)
334 IF(nb_ec+nb_nc<=128)
THEN
335 ncand_prov = nb_ec*nb_nc
340 IF(dsup<minbox.OR.nb_nc<=nb_n_b.OR.ncand_prov<=128)
THEN
342 ncand_prov = nb_ec*nb_nc
353 xx = x(1,nn)+dt2*(v(1,nn)+dt12*a(1,nn))
354 yy = x(2,nn)+dt2*(v(2,nn)+dt12*a(2,nn))
355 zz = x(3,nn)+dt2*(v(3,nn)+dt12*a(3,nn))
357 dist =
max(eminx(1,le)-xx,xx-eminx(4,le),dist)
358 dist =
max(eminx(2,le)-yy,yy-eminx(5,le),dist)
359 dist =
max(eminx(3,le)-zz,zz-eminx(6,le),dist)
361 IF(n8>=1.AND.n8<=numels8)
THEN
362 IF(nn/=ixs(2,ne).AND.nn/=ixs(3,ne).AND.
363 & nn/=ixs(4,ne).AND.nn/=ixs(5,ne).AND.
364 & nn/=ixs(6,ne).AND.nn/=ixs(7,ne).AND.
365 & nn/=ixs(8,ne).AND.nn/=ixs(9,ne))
THEN
367 prov_n(i_stok) = bpn(j)
369 IF(i_stok==mvsiz-1)
CALL i16sto(
370 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
374 ELSEIF(n10>=1.AND.n10<=numels8)
THEN
375 IF(nn/=ixs(2,ne).AND.nn/=ixs(4,ne).AND.
376 & nn/=ixs(7,ne).AND.nn/=ixs(6,ne).AND.
377 & nn/=ixs10(1,n10).AND.nn/=ixs10(2,n10).AND.
378 & nn/=ixs10(3,n10).AND.nn/=ixs10(4,n10).AND.
379 & nn/=ixs10(5,n10).AND.nn/=ixs10(6,n10))
THEN
381 prov_n(i_stok) = bpn(j)
383 IF(i_stok==mvsiz-1)
CALL i16sto(
384 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
388 ELSEIF(n16>=1.AND.n16<=numels16)
THEN
389 IF(nn/=ixs(2,ne).AND.nn/=ixs(3,ne).AND.
390 & nn/=ixs(4,ne).AND.nn/=ixs(5,ne).AND.
391 & nn/=ixs(6,ne).AND.nn/=ixs(7,ne).AND.
392 & nn/=ixs(8,ne).AND.nn/=ixs(9,ne).AND.
393 & nn/=ixs16(1,n16).AND.nn/=ixs16(2,n16).AND.
394 & nn/=ixs16(3,n16).AND.nn/=ixs16(4,n16).AND.
395 & nn/=ixs16(5,n16).AND.nn/=ixs16(6,n16).AND.
396 & nn/=ixs16(7,n16).AND.nn/=ixs16(8,n16))
THEN
398 prov_n(i_stok) = bpn(j)
400 IF(i_stok==mvsiz-1)
CALL i16sto(
401 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
405 ELSEIF(n20>=1.AND.n20<=numels20)
THEN
406 IF(nn/=ixs(2,ne).AND.nn/=ixs(3,ne).AND.
407 & nn/=ixs(4,ne).AND.nn/=ixs(5,ne).AND.
408 & nn/=ixs(6,ne).AND.nn/=ixs(7,ne).AND.
409 & nn/=ixs(8,ne).AND.nn/=ixs(9,ne).AND.
410 & nn/=ixs20(1,n20) .AND.nn/=ixs20(2,n20) .AND.
411 & nn/=ixs20(3,n20) .AND.nn/=ixs20(4,n20) .AND.
412 & nn/=ixs20(5,n20) .AND.nn/=ixs20(6,n20) .AND.
413 & nn/=ixs20(7,n20) .AND.nn/=ixs20(8,n20) .AND.
414 & nn/=ixs20(9,n20) .AND.nn/=ixs20(10,n20).AND.
415 & nn/=ixs20(11,n20).AND.nn/=ixs20(12,n20))
THEN
417 prov_n(i_stok) = bpn(j)
419 IF(i_stok==mvsiz-1)
CALL i16sto(
420 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
442 ELSE IF(dz==dsup)
THEN
445 seuil =(xyzm(dir+3,i_add)+xyzm(dir,i_add))*0.5
452#include "vectorize.inc"
454 IF(x(dir,nsv(bpn(i)))<seuil)
THEN
456 nb_ncn1 = nb_ncn1 + 1
461#include "vectorize.inc"
463 IF(x(dir,nsv(bpn(i)))>=seuil)
THEN
476#include "vectorize.inc"
479 IF(eminx(dir+3,le)+tzinf>=seuil)
THEN
485 ELSEIF(nb_ncn==0)
THEN
487#include "vectorize.inc"
490 IF(eminx(dir,le)-tzinf<seuil)
THEN
497#include "vectorize.inc"
500 IF(eminx(dir,le)-tzinf<seuil)
THEN
505 IF(eminx(dir+3,le)+tzinf>=seuil)
THEN
515 add(1,i_add+1) = addnn
516 add(2,i_add+1) = addne
518 xyzm(1,i_add+1) = xyzm(1,i_add)
519 xyzm(2,i_add+1) = xyzm(2,i_add)
520 xyzm(3,i_add+1) = xyzm(3,i_add)
521 xyzm(4,i_add+1) = xyzm(4,i_add)
522 xyzm(5,i_add+1) = xyzm(5,i_add)
523 xyzm(6,i_add+1) = xyzm(6,i_add)
524 xyzm(dir,i_add+1) = seuil
525 xyzm(dir+3,i_add) = seuil
531 IF(i_add+1>=i_add_max)
THEN
576 nb_nc = add(1,i_add+1) - add(1,i_add)
578 bpn(i) = pn(add(1,i_add)+i)
583 nb_ec = add(2,i_add+1) - add(2,i_add)
585 bpe(i) = pe(add(2,i_add)+i)
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)