36 1 BPE ,PE ,BPN ,PN ,NSN ,
37 2 TZINF ,IXS ,IXS16 ,IXS20 ,NELEM ,
38 3 NSV ,MAXSIZ ,CAND_N ,CAND_E ,MINBOX ,
39 5 CONT ,NB_N_B ,EMINX ,I_STOK_GLOB,NME ,
40 6 ITASK ,NOINT ,X ,V ,A ,
41 7 MX_CAND,IXS10 ,ESH_T )
49#include "implicit_f.inc"
62 INTEGER MAXSIZ,NB_N_B,I_STOK_GLOB,NME,NSN ,ITASK,NOINT ,MX_CAND,
63 . BPE(*),PE(*),BPN(*),PN(*),IXS(NIXS,*),IXS16(8,*),
64 . NSV(*),CAND_N(*),CAND_E(*),NELEM(*),IXS20(12,*),
68 . x(3,*),v(3,*),a(3,*),eminx(6,*),
69 . minbox,tzinf,xmin,ymin,zmin,xmax,
ymax,zmax
74 PARAMETER (I_ADD_MAX = 1001)
75 integer i,j,i_add,i_stok,l,nb_nc,nb_ec,cont,ne
76 INTEGER ADD(2,I_ADD_MAX) ,(MVSIZ),PROV_E(MVSIZ)
96 xmin =
min( xmin , eminx(1,i) )
97 ymin =
min( ymin , eminx(2,i) )
98 zmin =
min( zmin , eminx(3,i) )
99 xmax =
max( xmax , eminx(4,i) )
101 zmax =
max( zmax , eminx(6,i) )
132 IF(x(1,j)+dt2*(v(1,j)+dt12*a(1,j))>=xmin.AND.
133 . x(1,j)+dt2*(v(1,j)+dt12*a(1,j))<=xmax.AND.
134 . x(2,j)+dt2*(v(2,j)+dt12*a(2,j))>=ymin.AND.
135 . x(2,j)+dt2*(v(2,j)+dt12*a(2,j))<=
ymax.AND.
136 . x(3,j)+dt2*(v(3,j)+dt12*a(3,j))>=zmin.AND.
137 . x(3,j)+dt2*(v(3,j)+dt12*a(3,j))<=zmax)
THEN
165 1 bpe ,pe ,bpn ,pn ,add ,
166 2 x ,nb_nc ,nb_ec ,xyzm ,i_add ,
167 3 nsv ,maxsiz ,cand_n ,cand_e ,minbox ,
168 4 cont ,nb_n_b ,i_add_max,eminx ,nelem ,
169 5 i_stok ,ixs ,ixs16 ,ixs20 ,tzinf ,
170 6 i_stok_glob,prov_n ,prov_e ,v ,a ,
182 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
187 CALL ancmsg(msgid=85,anmode=aninfo,i1=noint)
189 ELSEIF(cont==-2)
THEN
190 CALL ancmsg(msgid=86,anmode=aninfo,i1=noint)
193 CALL ancmsg(msgid=90,anmode=aninfo,i1=noint)
208 1 BPE ,PE ,BPN ,PN ,ADD ,
209 2 X ,NB_NC ,NB_EC ,XYZM ,I_ADD ,
210 3 NSV ,MAXSIZ ,CAND_N ,CAND_E ,MINBOX ,
211 4 CONT ,NB_N_B ,I_ADD_MAX,EMINX ,NELEM ,
212 5 I_STOK ,IXS ,IXS16 ,IXS20 ,TZINF ,
213 6 I_STOK_GLOB,PROV_N ,PROV_E ,V ,A ,
218#include "implicit_f.inc"
222#include "mvsiz_p.inc"
226#include "com04_c.inc"
227#include "com08_c.inc"
277 INTEGER NB_NC,NB_EC,I_ADD,MAXSIZ,I_STOK_GLOB,I_STOK,MX_CAND,
278 . NB_N_B,,CONT ,IXS(NIXS,*),IXS16(8,*),
279 . ADD(2,*),BPE(*),PE(*),BPN(*),PN(*),
280 . NSV(*),CAND_N(*),CAND_E(*),NELEM(*),
281 . PROV_N(*) ,PROV_E(*) ,IXS20(12,*), IXS10(6,*)
284 . X(3,*),V(3,*),A(3,*),XYZM(6,*),EMINX(6,*),
289 INTEGER NB_NCN,NB_NCN1,NB_ECN,ADDNN,ADDNE,I,J,DIR,
290 . nn,ne,le,k,l,ncand_prov,n16,n20,n8,n10
293 . dx,dy,dz,dsup,seuil,xx,yy,zz
305 IF(add(2,i_add)+nb_ec>maxsiz)
THEN
318 IF(nb_ec/=0.AND.nb_nc/=0)
THEN
320 dx = xyzm(4,i_add) - xyzm(1,i_add)
321 dy = xyzm(5,i_add) - xyzm(2,i_add)
322 dz = xyzm(6,i_add) - xyzm(3,i_add)
332 IF(nb_ec+nb_nc<=128)
THEN
333 ncand_prov = nb_ec*nb_nc
338 IF(dsup<minbox.OR.nb_nc<=nb_n_b.OR.ncand_prov<=128)
THEN
340 ncand_prov = nb_ec*nb_nc
351 xx = x(1,nn)+dt2*(v(1,nn)+dt12*a(1,nn))
352 yy = x(2,nn)+dt2*(v(2,nn)+dt12*a(2,nn))
353 zz = x(3,nn)+dt2*(v(3,nn)+dt12*a(3,nn))
355 dist =
max(eminx(1,le)-xx,xx-eminx(4,le),dist)
356 dist =
max(eminx(2,le)-yy,yy-eminx(5,le),dist)
357 dist =
max(eminx(3,le)-zz,zz-eminx(6,le),dist)
359 IF(n8>=1.AND.n8<=numels8)
THEN
360 IF(nn/=ixs(2,ne).AND.nn/=ixs(3,ne).AND.
361 & nn/=ixs(4,ne).AND.nn/=ixs(5,ne).AND.
362 & nn/=ixs(6,ne).AND.nn/=ixs(7,ne).AND.
363 & nn/=ixs(8,ne).AND.nn/=ixs(9,ne))
THEN
365 prov_n(i_stok) = bpn(j)
367 IF(i_stok==mvsiz-1)
CALL i16sto(
368 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
372 ELSEIF(n10>=1.AND.n10<=numels8)
THEN
373 IF(nn/=ixs(2,ne).AND.nn/=ixs(4,ne).AND.
374 & nn/=ixs(7,ne).AND.nn/=ixs(6,ne).AND.
375 & nn/=ixs10(1,n10).AND.nn/=ixs10(2,n10).AND.
376 & nn/=ixs10(3,n10).AND.nn/=ixs10(4,n10).AND.
377 & nn/=ixs10(5,n10).AND.nn/=ixs10(6,n10))
THEN
379 prov_n(i_stok) = bpn(j)
381 IF(i_stok==mvsiz-1)
CALL i16sto(
382 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
386 ELSEIF(n16>=1.AND.n16<=numels16)
THEN
387 IF(nn/=ixs(2,ne).AND.nn/=ixs(3,ne).AND.
388 & nn/=ixs(4,ne).AND.nn/=ixs(5,ne).AND.
389 & nn/=ixs(6,ne).AND.nn/=ixs(7,ne).AND.
390 & nn/=ixs(8,ne).AND.nn/=ixs(9,ne).AND.
391 & nn/=ixs16(1,n16).AND.nn/=ixs16(2,n16).AND.
392 & nn/=ixs16(3,n16).AND.nn/=ixs16(4,n16).AND.
393 & nn/=ixs16(5,n16).AND.nn/=ixs16(6,n16).AND.
394 & nn/=ixs16(7,n16).AND.nn/=ixs16(8,n16))
THEN
396 prov_n(i_stok) = bpn(j)
398 IF(i_stok==mvsiz-1)
CALL i16sto(
399 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
403 ELSEIF(n20>=1.AND.n20<=numels20)
THEN
404 IF(nn/=ixs(2,ne).AND.nn/=ixs(3,ne).AND.
405 & nn/=ixs(4,ne).AND.nn/=ixs(5,ne).AND.
406 & nn/=ixs(6,ne).AND.nn/=ixs(7,ne).AND.
407 & nn/=ixs(8,ne).AND.nn/=ixs(9,ne).AND.
408 & nn/=ixs20(1,n20) .AND.nn/=ixs20(2,n20) .AND.
409 & nn/=ixs20(3,n20) .AND.nn/=ixs20(4,n20) .AND.
410 & nn/=ixs20(5,n20) .AND.nn/=ixs20(6,n20) .AND.
411 & nn/=ixs20(7,n20) .AND.nn/=ixs20(8,n20) .AND.
412 & nn/=ixs20(9,n20) .AND.nn/=ixs20(10,n20).AND.
413 & nn/=ixs20(11,n20).AND.nn/=ixs20(12,n20))
THEN
415 prov_n(i_stok) = bpn(j)
417 IF(i_stok==mvsiz-1)
CALL i16sto(
418 1 i_stok,i_stok_glob,prov_n,cand_n,prov_e,cand_e,
440 ELSE IF(dz==dsup)
THEN
443 seuil =(xyzm(dir+3,i_add)+xyzm(dir,i_add))*0.5
450#include "vectorize.inc"
452 IF(x(dir,nsv(bpn(i)))<seuil)
THEN
454 nb_ncn1 = nb_ncn1 + 1
459#include "vectorize.inc"
461 IF(x(dir,nsv(bpn(i)))>=seuil)
THEN
474#include "vectorize.inc"
477 IF(eminx(dir+3,le)+tzinf>=seuil)
THEN
483 ELSEIF(nb_ncn==0)
THEN
485#include "vectorize.inc"
488 IF(eminx(dir,le)-tzinf<seuil)
THEN
495#include "vectorize.inc"
498 IF(eminx(dir,le)-tzinf<seuil)
THEN
503 IF(eminx(dir+3,le)+tzinf>=seuil)
THEN
513 add(1,i_add+1) = addnn
514 add(2,i_add+1) = addne
516 xyzm(1,i_add+1) = xyzm(1,i_add)
517 xyzm(2,i_add+1) = xyzm(2,i_add)
518 xyzm(3,i_add+1) = xyzm(3,i_add)
519 xyzm(4,i_add+1) = xyzm(4,i_add)
520 xyzm(5,i_add+1) = xyzm(5,i_add)
521 xyzm(6,i_add+1) = xyzm(6,i_add)
522 xyzm(dir,i_add+1) = seuil
523 xyzm(dir+3,i_add) = seuil
529 IF(i_add+1>=i_add_max)
THEN
575 nb_nc = add(1,i_add+1) - add(1,i_add)
577 bpn(i) = pn(add(1,i_add)+i)
582 nb_ec = add(2,i_add+1) - add(2,i_add)
584 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)