45 1 X ,IRECT ,NSV ,INACTI ,ISKIP ,
46 2 NMN ,NSHEL_T ,NSN ,CAND_E ,CAND_B ,
47 3 GAP ,NOINT ,II_STOK ,NCONTACT ,BMINMA ,
48 4 TZINF ,MAXBOX ,MINBOX ,MWAG ,CURV_MAX ,
49 5 NB_N_B ,ESHIFT ,ILD ,IFQ ,IFPEN ,
50 8 STFN ,NIN ,STF ,IGAP ,
51 A NSHELR_L ,NCONT ,RENUM ,NSNROLD ,
52 B GAPMIN ,GAPMAX ,CURV_MAX_MAX ,NUM_IMP ,
53 C INTTH ,ITASK ,BGAPSMX ,I_MEM ,
54 D IXS ,BUFBRIC ,NBRIC ,ITAB ,NSHEL_L ,
55 E ALE_CONNECTIVITY ,IPARI)
70 use element_mod ,
only : nixs
74#include "implicit_f.inc"
86 INTEGER IPARI(NPARI), ISKIP
87 INTEGER NMN, NSN, NOINT,IDT,INACTI,IFQ, NIN, NSNR,NSNROLD
89 INTEGER (4,*),NSV(*),MWAG(*), RENUM(*),NUM_IMP, ITASK
90 INTEGER (*),CAND_B(*),IFPEN(*), IXS(NIXS,*), BUFBRIC(NBRIC)
91 INTEGER NCONTACT,ESHIFT,ILD,NB_N_B,IGAP,NCONT,,I_MEM,NBRIC
92 INTEGER ITAB(*),NSHEL_T,NSHEL_L, NSHELR_L, II_STOK
94 . GAP,TZINF,MAXBOX,MINBOX,CURV_MAX_MAX,
95 . GAPMIN, GAPMAX, BMINMA(6),CURV_MAX(NSHEL_T),BGAPSMX
99 INTEGER :: CANDB, CANDE, NB_SHORT, IPOS_, IREF,ILEN,IVAL
104 TYPE(
brick_entity),
DIMENSION(:),
ALLOCATABLE :: BRICK_GRID
105 TYPE(EDGE_ENTITY),
DIMENSION(:),
ALLOCATABLE :: EDGE_GRID
107 INTEGER I_ADD_MAX,ICUR
108 PARAMETER (I_ADD_MAX = 1001)
110 INTEGER I, J, I_ADD, IP0, IP1, MAXSIZ,
111 . add(2,i_add_max), loc_proc, n, isznsnr,
114 my_real marge, aaa, bid
118 INTEGER :: NCAND, NBF, NBL, SOMB, SOME, IPA
119 INTEGER :: TMP1, TMP2, IPOS
120 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: IFIRST, ILAST
121 CHARACTER*12 ::filename
123 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: order, VALUE
131 INTEGER (KIND=8) :: NBX8,NBY8,NBZ8,RES8,LVOXEL8
138 marge = 1.1 * tzinf-gap
141 . ((bminma(1)-bminma(4))*(bminma(2)-bminma(5))
142 . +(bminma(2)-bminma(5))*(bminma(3)-bminma(6))
143 . +(bminma(3)-bminma(6))*(bminma(1)-bminma(4))))
147 nbx = nint(aaa*(bminma(1)-bminma(4)))
148 nby = nint(aaa*(bminma(2)-bminma(5)))
149 nbz = nint(aaa*(bminma(3)-bminma(6)))
157 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
160 IF(res8 > lvoxel8)
THEN
161 if(itask==0.and.
ibug22_tri==1)print *,
"redim Voxel"
163 aaa = aaa/((nbx8+2)*(nby8+2)*(nbz8+2))
165 nbx = int((nbx+2)*aaa)-2
166 nby = int((nby+2)*aaa)-2
167 nbz = int((nbz+2)*aaa)-2
176 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
178 IF(res8 > lvoxel8)
THEN
179 nbx =
min(100,
max(nbx8,1))
180 nby =
min(100,
max(nby8,1))
181 nbz =
min(100,
max(nbz8,1))
188 DO i=
inivoxel,(nbx+2)*(nby+2)*(nbz+2)
194 if(itask==0.and.
ibug22_tri==1)print *,
"call i22trivox"
197 1 nsn ,renum ,nshelr_l ,isznsnr ,i_mem ,
198 2 irect ,x ,stf ,stfn ,bminma ,
199 3 nsv ,ii_stok ,cand_b ,eshift ,cand_e ,
200 4 ncontact,noint ,tzinf ,
205 9 nin ,itask ,ixs ,bufbric ,
206 a nbric ,itab ,nshel_l )
213 IF ( nb_n_b > ncont)
THEN
214 CALL ancmsg(msgid=85,anmode=aninfo,
220 ELSEIF(i_mem==2)
THEN
224 WRITE(istdo,*)
' **WARNING INTERFACE/MEMORY'
225 WRITE(iout,*)
' **WARNING INTERFACE NB:',noint
226 WRITE(iout,*)
' TOO MANY POSSIBLE IMPACTS'
227 WRITE(iout,*)
' SIZE OF INFLUENCE ZONE IS'
228 WRITE(iout,*)
' EXAPNDED'
229#include "lockoff.inc"
236 IF ( nb_n_b > ncont)
THEN
237 CALL ancmsg(msgid=100,anmode=aninfo,
248 print *,
" |------------i22buce.F----------|"
249 print *,
" | LISTE DES CANDIDATS |"
250 print *,
" |-------------------------------|"
251 allocate(order(ii_stok) ,value(ii_stok))
252 min2 = minval(abs(cand_e(1:ii_stok)))
253 r2 = maxval(abs(cand_e(1:ii_stok)))-min2
255 VALUE(i) = cand_b(i)*(r2+1)+abs(cand_e(i))-min2
260 if(cand_e(order(i))>0)
then
261 print *,i,ixs(11,bufbric(cand_b(order(i)))),
262 .
"avec+",nint(irect_l(1:4,iabs(cand_e(order(i)))))
264 print *,i,ixs(11,bufbric(cand_b(order(i)))),
265 .
"avec-",nint(irect_l(1:4,iabs(cand_e(order(i)))))
268 deallocate(order,
value)
276! 03 40 (5) with- 211 210 1176779 1176777 (02) <- ifirst = 01
303 ALLOCATE(
itagb(1:nbric))
304 ALLOCATE(ifirst(1:nbric))
305 ALLOCATE(ilast(1:nbric))
312 IF(
itagb(cand_b(i)) == 0)
THEN
313 ifirst(cand_b(i)) = i
327 IF(
itagb(i) == 0)cycle
330 iadf(ipos) = ifirst(i)
331 iadl(ipos) = ilast(i)
347 itage(iabs(cand_e(i))) = 1
353 IF(
itage(i) == 0)cycle
405 print *,
" |------------i22buce.F----------|"
406 print *,
" | SYNTHESE DES CANDIDATS |"
407 print *,
" |-------------------------------|"
408 print *, ncand ,
"couples candidats avec :"
409 print *,
ncandb ,
"briques differentes, et"
410 print *,
ncande ,
"facettes differentes."
412 print *,
" |------------i22buce.F----------|"
413 print *,
" | BRIQUES RETENUES |"
414 print *,
" | FOR CUT CELL BUFFER |"
415 print *,
" |-------------------------------|"
416 print *, (ixs(11,bufbric
424 deallocate(order,
VALUE)
441 1 x ,ii_stok ,cand_b ,cand_e ,itask ,
442 2 nbric ,itab ,bufbric ,ncand ,
472 1 x ,ii_stok ,cand_b ,cand_e ,itask ,
473 2 nbric ,itab ,bufbric ,ncand ,
482 1 ixs ,x ,itask, nin, bufbric)
subroutine i22buce(x, irect, nsv, inacti, iskip, nmn, nshel_t, nsn, cand_e, cand_b, gap, noint, ii_stok, ncontact, bminma, tzinf, maxbox, minbox, mwag, curv_max, nb_n_b, eshift, ild, ifq, ifpen, stfn, nin, stf, igap, nshelr_l, ncont, renum, nsnrold, gapmin, gapmax, curv_max_max, num_imp, intth, itask, bgapsmx, i_mem, ixs, bufbric, nbric, itab, nshel_l, ale_connectivity, ipari)
subroutine i22trivox(nsn, renum, nshelr_l, isznsnr, i_mem, irect, x, stf, stfn, bminma, nsv, ii_stok, cand_b, eshift, cand_e, mulnsn, noint, tzinf, voxel, nbx, nby, nbz, cand_p, nshel_t, marge, nin, itask, ixs, bufbric, nbric, itab, nshel_l)
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)