OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i22buce.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| i22buce ../engine/source/interfaces/intsort/i22buce.F
25!||--- called by ------------------------------------------------------
26!|| i22main_tri ../engine/source/interfaces/intsort/i22main_tri.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| i22get_prev_data ../engine/source/interfaces/int22/i22get_prev_data.f
31!|| i22ident ../engine/source/interfaces/int22/i22ident.F
32!|| i22intersect ../engine/source/interfaces/int22/i22intersect.F
33!|| i22trivox ../engine/source/interfaces/intsort/i22trivox.F
34!|| my_barrier ../engine/source/system/machine.F
35!||--- uses -----------------------------------------------------
36!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.f
37!|| i22bufbric_mod ../common_source/modules/interfaces/cut-cell-search_mod.f
38!|| i22edge_mod ../common_source/modules/interfaces/cut-cell-buffer_mod.F
39!|| i22tri_mod ../common_source/modules/interfaces/cut-cell-search_mod.f
40!|| message_mod ../engine/share/message_module/message_mod.F
41!|| tri7box ../engine/share/modules/tri7box.F
42!||====================================================================
43 SUBROUTINE i22buce(
44 1 X ,IRECT ,NSV ,INACTI ,ISKIP ,
45 2 NMN ,NSHEL_T ,NSN ,CAND_E ,CAND_B ,
46 3 GAP ,NOINT ,II_STOK ,NCONTACT ,BMINMA ,
47 4 TZINF ,MAXBOX ,MINBOX ,MWAG ,CURV_MAX ,
48 5 NB_N_B ,ESHIFT ,ILD ,IFQ ,IFPEN ,
49 8 STFN ,NIN ,STF ,IGAP ,
50 A NSHELR_L ,NCONT ,RENUM ,NSNROLD ,
51 B GAPMIN ,GAPMAX ,CURV_MAX_MAX ,NUM_IMP ,
52 C INTTH ,ITASK ,BGAPSMX ,I_MEM ,
53 D IXS ,BUFBRIC ,NBRIC ,ITAB ,NSHEL_L ,
54 E ALE_CONNECTIVITY ,IPARI)
55C============================================================================
56C cette routine est appelee par : I22MAINCT(/int7/i22mainct.F)
57C----------------------------------------------------------------------------
58C cette routine appelle : I22TRI(/int7/i22trivox.F)
59C ARRET(/sortie/arret.F)
60C============================================================================
61C M o d u l e s
62C-----------------------------------------------
63 USE tri7box
64 USE i22tri_mod
65 USE message_mod
66 USE i22edge_mod
69C-----------------------------------------------
70C I m p l i c i t T y p e s
71C-----------------------------------------------
72#include "implicit_f.inc"
73#include "comlock.inc"
74C-----------------------------------------------
75C C o m m o n B l o c k s
76C-----------------------------------------------
77#include "units_c.inc"
78#include "warn_c.inc"
79#include "com01_c.inc"
80#include "param_c.inc"
81C-----------------------------------------------
82C D u m m y A r g u m e n t s
83C-----------------------------------------------
84 INTEGER IPARI(NPARI), ISKIP
85 INTEGER NMN, NSN, NOINT,IDT,INACTI,IFQ, NIN, NSNR,NSNROLD
86 INTEGER N_CAND_B
87 INTEGER IRECT(4,*),NSV(*),MWAG(*), RENUM(*),NUM_IMP, ITASK
88 INTEGER CAND_E(*),CAND_B(*),IFPEN(*), IXS(NIXS,*), BUFBRIC(NBRIC)
89 INTEGER NCONTACT,ESHIFT,ILD,NB_N_B,IGAP,NCONT,INTTH,I_MEM,NBRIC
90 INTEGER ITAB(*),NSHEL_T,NSHEL_L, NSHELR_L, II_STOK
91 my_real
92 . GAP,TZINF,MAXBOX,MINBOX,CURV_MAX_MAX,
93 . GAPMIN, GAPMAX, BMINMA(6),CURV_MAX(NSHEL_T),BGAPSMX
94 my_real
95 . x(3,*), stfn(*),
96 . stf(*)
97 INTEGER :: CANDB, CANDE, NB_SHORT, IPOS_, IREF,ILEN,IVAL
98 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECTIVITY
99C-----------------------------------------------
100C L o c a l V a r i a b l e s
101C-----------------------------------------------
102 TYPE(brick_entity), DIMENSION(:),ALLOCATABLE :: BRICK_GRID
103 TYPE(EDGE_ENTITY), DIMENSION(:),ALLOCATABLE :: EDGE_GRID
104
105 INTEGER I_ADD_MAX,ICUR
106 PARAMETER (I_ADD_MAX = 1001)
107
108 INTEGER I, J, I_ADD, IP0, IP1, MAXSIZ,
109 . add(2,i_add_max), loc_proc, n, isznsnr,
110 . nsnfiold(nspmd)
111
112 my_real marge, aaa, bid
113
114 CHARACTER*8 KEY
115
116 INTEGER :: NCAND, NBF, NBL, SOMB, SOME, IPA
117 INTEGER :: TMP1, TMP2, IPOS
118 INTEGER, ALLOCATABLE, DIMENSION(:) :: IFIRST, ILAST
119 CHARACTER*12 ::filename
120
121 INTEGER, ALLOCATABLE, DIMENSION(:) :: order, VALUE
122
123 INTEGER R2,MIN2
124
125C-----------------------------------------------
126C PROV
127C-----------------------------------------------
128 INTEGER NBX,NBY,NBZ
129 INTEGER (KIND=8) :: NBX8,NBY8,NBZ8,RES8,LVOXEL8
130C-----------------------------------------------
131C S o u r c e L i n e s
132C-----------------------------------------------
133 ip0 = 1
134 isznsnr = 0
135 i_mem = 0
136 marge = 1.1 * tzinf-gap
137
138 aaa = sqrt(nmn /
139 . ((bminma(1)-bminma(4))*(bminma(2)-bminma(5))
140 . +(bminma(2)-bminma(5))*(bminma(3)-bminma(6))
141 . +(bminma(3)-bminma(6))*(bminma(1)-bminma(4))))
142
143 aaa = 0.75*aaa
144
145 nbx = nint(aaa*(bminma(1)-bminma(4)))
146 nby = nint(aaa*(bminma(2)-bminma(5)))
147 nbz = nint(aaa*(bminma(3)-bminma(6)))
148 nbx = max(nbx,1)+2
149 nby = max(nby,1)+2
150 nbz = max(nbz,1)+2
151
152 nbx8=nbx
153 nby8=nby
154 nbz8=nbz
155 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
156 lvoxel8 = lvoxel
157
158 IF(res8 > lvoxel8) THEN
159 if(itask==0.and.ibug22_tri==1)print *, "redim Voxel"
160 aaa = lvoxel
161 aaa = aaa/((nbx8+2)*(nby8+2)*(nbz8+2))
162 aaa = aaa**(third)
163 nbx = int((nbx+2)*aaa)-2
164 nby = int((nby+2)*aaa)-2
165 nbz = int((nbz+2)*aaa)-2
166 nbx = max(nbx,1)
167 nby = max(nby,1)
168 nbz = max(nbz,1)
169 ENDIF
170
171 nbx8=nbx
172 nby8=nby
173 nbz8=nbz
174 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
175
176 IF(res8 > lvoxel8) THEN
177 nbx = min(100,max(nbx8,1))
178 nby = min(100,max(nby8,1))
179 nbz = min(100,max(nbz8,1))
180 print *, "stop 678"
181c stop 678
182 end if
183
184 ! initialisation complete de VOXEL
185 ! (en // SMP il y a possibilite de redondance de traitement mais no pb)
186 DO i=inivoxel,(nbx+2)*(nby+2)*(nbz+2)
187 voxel1(i)=0 !---reset voxel brick---!
188 ENDDO
189
190 inivoxel = max(inivoxel,(nbx+2)*(nby+2)*(nbz+2)+1)
191
192 if(itask==0.and.ibug22_tri==1)print *, "call i22trivox"
193
194 CALL i22trivox(
195 1 nsn ,renum ,nshelr_l ,isznsnr ,i_mem ,
196 2 irect ,x ,stf ,stfn ,bminma ,
197 3 nsv ,ii_stok ,cand_b ,eshift ,cand_e ,
198 4 ncontact,noint ,tzinf ,
199 5 voxel1 ,nbx ,nby ,nbz ,
200 6 bid ,
201 7 nshel_t ,
202 8 marge ,
203 9 nin ,itask ,ixs ,bufbric ,
204 a nbric ,itab ,nshel_l )
205
206C I_MEM = 1 ==> PAS ASSEZ DE MEMOIRE PILE
207C I_MEM = 2 ==> PAS ASSEZ DE MEMOIRE CANDIDATS
208C I_MEM = 3 ==> TROP NIVEAUX PILE
209 IF(i_mem==1)THEN
210 nb_n_b = nb_n_b + 1
211 IF ( nb_n_b > ncont) THEN
212 CALL ancmsg(msgid=85,anmode=aninfo,
213 . i1=noint)
214 CALL arret(2)
215 ENDIF
216 ild = 1
217 iskip=1
218 ELSEIF(i_mem==2) THEN
219 IF(debug(1)>=1) THEN
220 iwarn = iwarn+1
221#include "lockon.inc"
222 WRITE(istdo,*)' **WARNING INTERFACE/MEMORY'
223 WRITE(iout,*)' **WARNING INTERFACE NB:',noint
224 WRITE(iout,*)' TOO MANY POSSIBLE IMPACTS'
225 WRITE(iout,*)' SIZE OF INFLUENCE ZONE IS'
226 WRITE(iout,*)' EXAPNDED'
227#include "lockoff.inc"
228 ENDIF
229C TZINF = THREE_OVER_4*TZINF !non sinon on perd les candidates voisines
230 ild = 1
231 iskip=1
232 ELSEIF(i_mem==3)THEN
233 nb_n_b = nb_n_b + 1
234 IF ( nb_n_b > ncont) THEN
235 CALL ancmsg(msgid=100,anmode=aninfo,
236 . i1=noint)
237 CALL arret(2)
238 ENDIF
239 ild = 1
240 iskip=1
241 ENDIF
242
243
244!-----------------debug
245 if(itask==0.and.ibug22_tri==1)then
246 print *, " |------------i22buce.f----------|"
247 print *, " | liste des candidats |"
248 print *, " |-------------------------------|"
249 allocate(order(ii_stok) ,VALUE(II_STOK))
250 MIN2 = MINVAL(ABS(CAND_E(1:II_STOK)))
251 R2 = MAXVAL(ABS(CAND_E(1:II_STOK)))-MIN2
252 DO I=1,II_STOK
253 VALUE(I) = CAND_B(I)*(R2+1)+ABS(CAND_E(I))-MIN2
254 ENDDO
255 order=0
256 !CALL QUICKSORT_I2 !(ORDER,II_STOK,VALUE)
257 DO I=1,II_STOK
258 if(CAND_E(ORDER(I))>0)then
259 print *,I,IXS(11,bufbric(CAND_B(ORDER(I)))),
260 . "avec+",NINT(IRECT_L(1:4,IABS(CAND_E(ORDER(I))))) !negative value means that there is no intersection at all for this couple.
261 else
262 print *,I,IXS(11,bufbric(CAND_B(ORDER(I)))),
263 . "avec-",NINT(IRECT_L(1:4,IABS(CAND_E(ORDER(I))))) !negative value means that there is no intersection at all for this couple.
264 endif
265 END DO
266 deallocate(order,value)
267 end if
268!-----------------debug
269
270!exemple de liste de candidats
271! II_STOK IXS(11,bufbric(CAND_B(I))) ) CAND_B(I) NINT(IRECT_L(1:4,IABS(CAND_E(I))) CAND_E(I) OCCURENCE BRIQUE
272! 01 39 (3) avec- 1176806 1176814 1176859 1176876 (12) <- IFIRST = 01
273! 02 39 (3) avec- 1176941 1176789 1176791 1176934 (11) <- ILAST = 02
274! 03 40 (5) avec- 211 210 1176779 1176777 (02) <- IFIRST = 01
275! 04 40 (5) avec+ 1176874 1176777 1176779 1176841 (06) .
276! 05 40 (5) avec+ 1176874 1176841 1176814 1176806 (14) .
277! 06 40 (5) avec+ 1176806 1176814 1176859 1176876 (12) .
278! 07 40 (5) avec+ 1176876 1176859 207 206 (03) .
279! 08 40 (5) avec- 209 1176772 1176774 208 (01) <- ILAST = 08
280 !
281! NCAND = 8 (II_STOK)
282! LIST_B = {3,5} , NCANDB = 2
283! LIST_E = {1,2,3,6,11,12,14} , NCANDE = 7
284!
285!
286 CALL MY_BARRIER
287
288 IF(ISKIP==1)THEN
289 NB=NCANDB
290 RETURN
291 ENDIF
292
293 ! ##########################################
294 ! # CREATING BRICK LIST IDs #
295 ! # fill LIST_B #
296 ! # fill IADF,IADL #
297 ! ##########################################
298 ! II_STOK est le nombre de couple candidats, y compris les facettes non intersectante dans le voisinage
299 ! Ces derniers sont necessaires pour pouvoir y charger les forces de contact appropriees.
300 IF(ITASK==0)THEN
301 ALLOCATE(ITAGB(1:NBRIC))
302 ALLOCATE(IFIRST(1:NBRIC)) !premiere occurence de la brique dans la liste des candidats
303 ALLOCATE(ILAST(1:NBRIC)) !derniere occurence de la brique dans la liste des candidats
304 ITAGB(:) = 0
305 IFIRST(:) = 0
306 ILAST(:) = 0
307 !boucle sur la liste des candidats et tag des briques presentes
308 DO I=1,II_STOK
309 !pas encore marque
310 IF(ITAGB(CAND_B(I)) == 0)THEN
311 IFIRST(CAND_B(I)) = I
312 ILAST(CAND_B(I)) = I !premier et dernier si aucune autre occurence
313 ITAGB(CAND_B(I)) = 1
314 !deja marque
315 ELSE
316 ILAST(CAND_B(I)) = I
317 ENDIF
318 ENDDO!next I
319 NCANDB = SUM(ITAGB(:)) !toutes les briques intersectees ou non sans occurence multiple
320 ALLOCATE(LIST_B(NCANDB))
321 ALLOCATE(IADF(NCANDB)) !adresse debut dans CAND_B
322 ALLOCATE(IADL(NCANDB)) !adresse fin dans CAND_B
323 IPOS = 0
324 DO I=1,NBRIC
325 IF(ITAGB(I) == 0)CYCLE
326 IPOS = IPOS + 1
327 LIST_B(IPOS) = I
328 IADF(IPOS) = IFIRST(I)
329 IADL(IPOS) = ILAST(I)
330 ENDDO
331 ENDIF!(ITASK==0)THEN
332
333 ! ##########################################
334 ! # CREATING FACE LIST IDs #
335 ! # fill LIST_E #
336 ! ##########################################
337 ! II_STOK est le nombre de couple candidats, y compris les facettes non intersectante dans le voisinage
338 ! Ces derniers sont necessaires pour pouvoir y charger les forces de contact appropriees.
339 ! Les ids de facettes negatives designe des facette non intersectante pour la brique concernee
340 IF(ITASK==0)THEN
341 ALLOCATE(ITAGE(1:NIRECT_L))
342 ITAGE(:) = 0
343 !boucle sur la liste des candidats et tag des briques presentes
344 DO I=1,II_STOK
345 ITAGE(IABS(CAND_E(I))) = 1
346 ENDDO
347 NCANDE = SUM(ITAGE(:)) !toutes les briques intersectees ou non sans occurence multiple
348 ALLOCATE(LIST_E(NCANDE))
349 IPOS = 0
350 DO I=1,NIRECT_L
351 IF(ITAGE(I) == 0)CYCLE
352 IPOS = IPOS + 1
353 LIST_E(IPOS) = I
354 ITAGE(I) = IPOS !le tag traite devient la position dans LIST_E
355 ENDDO
356 ENDIF!(ITASK==0)THEN
357
358
359! La liste des candidats (CAND_B,CAND_E) contient des occurences multiples et desordonnees de CAND_E.
360! La liste LIST_E est la liste ordonne sans repetition.
361! pour un couple de candidat donne (input index IDX1) , on associe la position dans LIST_E correspondante ( resultat index IDX2)
362!
363! II_STOK GET_LIST_E_POS_FROM_CAND_E_POS CAND_E(I)
364! 01 pos 6 DANS LIST_E(:) <--- (12)
365! 02 pos 5 DANS LIST_E(:) <--- (11)
366! 03 pos 2 DANS LIST_E(:) <--- (02)
367! 04 pos 4 DANS LIST_E(:) <--- (06)
368! 05 pos 7 DANS LIST_E(:) <--- (14)
369! 06 pos 6 DANS LIST_E(:) <--- (12)
370! 07 pos 3 DANS LIST_E(:) <--- (03)
371! 08 pos 1 DANS LIST_E(:) <--- (01)
372
373! CAND_E 12 11 02 06 12 14 03 01
374! ITAG_E 01 02 03 04 05 06 07 08 09 10 11 12 13 14
375! x x x x x x x
376! LIST_E 01 02 03 06 11 12 14
377!
378!GET_LIST_E_POS_FROM_CAND_E_POS 06 05 02 04 07 06 03 01
379
380
381 ! ##########################################
382 ! # SURJECTIVE APP IDX1 |-> IDX2 #
383 ! # LINK CAND_E(IDX1) TO LIST_E(IDX2) #
384 ! ##########################################
385 IF(ITASK==0)THEN
386 ALLOCATE(GET_LIST_E_POS_FROM_CAND_E_POS(II_STOK))
387 DO I=1,II_STOK
388 GET_LIST_E_POS_FROM_CAND_E_POS(I) = ITAGE(IABS(CAND_E(I)))
389 ENDDO
390 ENDIF!(ITASK==0)THEN
391
392 CALL MY_BARRIER
393
394 NCAND = II_STOK
395
396.AND. if(itask==0ibug22_tri==1)then
397
398 allocate(order(NCANDB) ,VALUE(NCANDB))
399 order = 0
400 !CALL QUICKSORT_I2 !(ORDER,NCANDB,list_b)
401
402 print *, ""
403 print *, " |------------i22buce.f----------|"
404 print *, " | synthese des candidats |"
405 print *, " |-------------------------------|"
406 print *, NCAND , "couples candidats avec :"
407 print *, NCANDB , "briques differentes, et"
408 print *, NCANDE , "facettes differentes."
409 print *, ""
410 print *, " |------------i22buce.f----------|"
411 print *, " | briques retenues |"
412 print *, " | for cut cell buffer |"
413 print *, " |-------------------------------|"
414 print *, (IXS(11,bufbric(list_b(order(j)))),j=1,NCANDB)
415 print *, ""
416 !print *, " |------------i22buce.f----------|"
417 !print *, " | adresses dans cand_b |"
418 !print *, " |-------------------------------|"
419 !print *, " iadf=", IADF
420 !print *, " iadl=", IADL
421 !print *, ""
422 deallocate(order,VALUE)
423
424 end if
425
426 !NCANDB is now the number of bricks in CAND_B(1:NCAND)
427 !LIST_B is now the list of these bricks
428 !IADF(I)- IADL(I) is index spectra of a given brick from list_b inside candidate list 1:II_STOK
429 ! from IADF(J) to IADL(J) CAND_B(:) is the same one (see lock on/off in i22sto)
430
431
432C -------------------------------------------------------------
433C RECUPERATION DES DONNEES DE LA CUT CELL DU CYCLE PRECEDENT
434C Indispensable d'avoir un historique pour le calcul de
435C certaines evolutions ou le suivi topologique par exemple.
436C -------------------------------------------------------------
437
438 CALL I22GET_PREV_DATA(
439 1 X ,II_STOK ,CAND_B ,CAND_E ,ITASK ,
440 2 NBRIC ,ITAB ,BUFBRIC ,NCAND ,
441 3 IXS ,NIN)
442
443 !This block must be after I22GET_PREV_DATA OTHERWISE OLD BUFFER IS ERASED
444
445 !s'assurer que cela soit fait dans i22intersect
446! IF(ITASK==0)THEN
447! DO I=1,NCANDB_ADD
448! BRICK_LIST(NIN,NCANDB+I)%ID = BUFBRIC(LIST_B_ADD(I))
449! BRICK_LIST(NIN,NCANDB+I)%ICODE = 0
450! BRICK_LIST(NIN,NCANDB+I)%IDBLE = 0
451! BRICK_LIST(NIN,NCANDB+I)%NBCUT = 0
452! DO J=1,12
453! BRICK_LIST(NIN,NCANDB+I)%EDGE(J)%NBCUT = 0
454! ENDDO
455! ENDDO
456! ENDIF
457
458 CALL MY_BARRIER
459
460
461C -------------------------------------------------------------
462C CALCUL DES POINTS D'INTERSECTION
463C on peut prendre la liste des candidats II_STOK telle quelle
464C et la traiter en multi-threading.s
465C -------------------------------------------------------------
466 ! ##########################################
467 ! # POINTS INTERSECTIONS #
468 ! ##########################################
469 CALL I22INTERSECT(
470 1 X ,II_STOK ,CAND_B ,CAND_E ,ITASK ,
471 2 NBRIC ,ITAB ,BUFBRIC ,NCAND ,
472 3 IXS ,NIN)
473
474 CALL MY_BARRIER
475
476 ! ##########################################
477 ! # INTERPRETATIONS DU PARTITIONNEMENT #
478 ! ##########################################
479 CALL I22IDENT(
480 1 IXS ,X ,ITASK, NIN, BUFBRIC)
481
482 NB = NCANDB
483 CALL MY_BARRIER
484
485
486 ! ##########################################
487 ! # DECHARGEMENT MEMOIRE #
488 ! ##########################################
489 IF(ITASK==0)THEN
490 DEALLOCATE(ITAGB)
491 DEALLOCATE(ITAGE)
492 DEALLOCATE(IFIRST)
493 DEALLOCATE(ILAST)
494 DEALLOCATE(IADF)
495 DEALLOCATE(IADL)
496 DEALLOCATE(LIST_B)
497 DEALLOCATE(LIST_E)
498 DEALLOCATE(GET_LIST_E_POS_FROM_CAND_E_POS)
499 ENDIF
500
501
502
503 999 CONTINUE
504
505
506 RETURN
507 END
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)
Definition i22buce.F:55
subroutine i22get_prev_data(x, ii_stok, cand_b, cand_e, itask, nbric, itab, bufbric, ncand, ixs, nin)
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)
Definition i22trivox.F:49
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
for(i8=*sizetab-1;i8 >=0;i8--)
integer, dimension(:), allocatable iadf
integer, dimension(:), allocatable iadl
integer, dimension(lvoxel) voxel1
Definition tri7box.F:53
integer inivoxel
Definition tri7box.F:53
integer lvoxel
Definition tri7box.F:51
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)
Definition message.F:889
subroutine arret(nn)
Definition arret.F:87