OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i7buc_vox1.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!|| i7buc_vox1 ../starter/source/interfaces/inter3d1/i7buc_vox1.F
25!||--- called by ------------------------------------------------------
26!|| inint3 ../starter/source/interfaces/inter3d1/inint3.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| i7trivox1 ../starter/source/interfaces/inter3d1/i7trivox1.F
30!|| margin_reduction ../starter/source/interfaces/inter3d1/margin.F90
31!||--- uses -----------------------------------------------------
32!|| front_mod ../starter/share/modules1/front_mod.F
33!|| margin_reduction_mod ../starter/source/interfaces/inter3d1/margin.F90
34!|| message_mod ../starter/share/message_module/message_mod.F
35!|| tri7box ../starter/share/modules1/tri7box.F
36!||====================================================================
37 SUBROUTINE i7buc_vox1(
38 1 X ,IRECT,NSV ,BUMULT,NSEG ,
39 2 NMN ,NRTM ,MWA ,NSN ,
40 3 GAP ,XYZM ,NOINT ,I_STOK ,
41 4 DIST ,TZINF,MSR ,
42 5 STF ,STFN ,MULTIMP,ISTF ,IDDLEVEL,
43 6 ITAB ,GAP_S,GAP_M ,IGAP ,GAPMIN ,
44 7 GAPMAX,INACTI,GAP_S_L,GAP_M_L,I_MEM ,
45 8 NCONT ,ICURV ,BGAPSMX,ID, TITR,
46 9 DRAD ,INTERCEP,NIN,
47 1 IREMNODE,FLAGREMNODE,KREMNODE,REMNODE,
48 2 DGAPLOAD,npari,ipari,intbuf_tab,IS_USED_WITH_LAW151)
49C============================================================================
50C M o d u l e s
51C-----------------------------------------------
52 USE message_mod
53 USE tri7box
54 USE front_mod
56 use intbufdef_mod
57 use margin_reduction_mod , only : margin_reduction
58C-----------------------------------------------
59C I m p l i c i t T y p e s
60C-----------------------------------------------
61#include "implicit_f.inc"
62C-----------------------------------------------
63C G l o b a l P a r a m e t e r s
64C-----------------------------------------------
65#include "mvsiz_p.inc"
66C-----------------------------------------------
67C C o m m o n B l o c k s
68C-----------------------------------------------
69#include "units_c.inc"
70#include "com01_c.inc"
71#include "com04_c.inc"
72#include "vect07_c.inc"
73#include "scr06_c.inc"
74C-----------------------------------------------
75C D u m m y A r g u m e n t s
76C-----------------------------------------------
77 INTEGER NMN, NRTM, NSN, NOINT,I_STOK,MULTIMP,ISTF,IGAP,
78 . INACTI,I_MEM,NIN,IREMNODE,FLAGREMNODE
79 INTEGER IRECT(4,*),NSV(*),NSEG(*),MWA(*)
80 INTEGER MSR(*),IDDLEVEL
81 INTEGER ITAB(*),NCONT,ICURV,KREMNODE(*),REMNODE(*)
82 my_real
83 . STF(*),STFN(*),X(3,*),XYZM(6,2),GAP_S(*),GAP_M(*),
84 . DIST,BUMULT,GAP,TZINF,GAPMIN,GAPMAX,
85 . GAP_S_L(*),GAP_M_L(*),BGAPSMX, DRAD
86 my_real , INTENT(IN) :: DGAPLOAD
87 INTEGER ID
88 CHARACTER(LEN=NCHARTITLE) :: TITR
89 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
90 integer, intent(in) :: npari
91 integer, dimension(npari), intent(inout) :: ipari !< interface data
92 type(intbuf_struct_), intent(inout) :: intbuf_tab !< interface data
93 LOGICAL,INTENT(IN) :: IS_USED_WITH_LAW151
94C-----------------------------------------------
95C L o c a l V a r i a b l e s
96C-----------------------------------------------
97 INTEGER NRTM_L
98 INTEGER, DIMENSION(:), ALLOCATABLE :: INDEX
99 INTEGER NBX,NBY,NBZ
100 INTEGER (KIND=8) :: NBX8,NBY8,NBZ8,RES8,LVOXEL8
101 INTEGER I, J, K, I_ADD, L, LOC_PROC, N, ISZNSNR,
102 . n1, n2, n3, n4, ncontact,i_bid,i_stok_old,
103 . ix1,iy1,iz1,ix2,iy2,iz2,ix,iy,iz
104 my_real
105 . marge, aaa,tzinf_st,marge_st
106 my_real
107 . dx1,dy1,dz1,
108 . dx3,dy3,dz3,
109 . dx4,dy4,dz4,
110 . dx6,dy6,dz6,
111 . dd1,dd2,dd3,dd4,dd,dd0,xmin,ymin,zmin,
112 . xmax_m,ymax_m,zmax_m,xmin_m,ymin_m,zmin_m,
113 . xmax_s,ymax_s,zmax_s,xmin_s,ymin_s,zmin_s,
114 . xmax,ymax,zmax,xxx,yyy,zzz,
115 . xminb, yminb, zminb, xmaxb, ymaxb, zmaxb,
116 . mean_x, mean_y, mean_z, dev_x, dev_y, dev_z,
117 . gapv(mvsiz),c_max,
118 . tstart,tstop,
119 . xmine,ymine,zmine,xmaxe,ymaxe,zmaxe,
120 . xx1,xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4
121 my_real, DIMENSION(:), ALLOCATABLE :: curv_max
122 INTEGER, DIMENSION(:),ALLOCATABLE :: IIX,IIY,IIZ,LOCAL_NEXT_NOD
123
124 LOGICAL :: TYPE18
125 INTEGER (KIND=8) :: IONE,IHUNDRED !< Integer constants in INTEGER 8 for comparisions
126C-----------------------------------------------
127C S o u r c e L i n e s
128C-----------------------------------------------
129 IONE=1 !< Constant init
130 ihundred=100 !< Constant init
131
132 ALLOCATE( index(nrtm) )
133 ALLOCATE( curv_max(nrtm) )
134 ALLOCATE(local_next_nod(nsn))
135 ALLOCATE(iix(nsn))
136 ALLOCATE(iiy(nsn))
137 ALLOCATE(iiz(nsn))
138 type18=.false.
139 IF(inacti==7)type18=.true.
140
141 mwa(1:numnod+numfakenodigeo) = 0
142 ncontact = multimp * ncont
143 c_max = zero
144 IF(icurv/=0)THEN
145 DO i=1,nrtm
146 xxx=max(x(1,irect(1,i)),x(1,irect(2,i)),
147 . x(1,irect(3,i)),x(1,irect(4,i)))
148 . -min(x(1,irect(1,i)),x(1,irect(2,i)),
149 . x(1,irect(3,i)),x(1,irect(4,i)))
150 yyy=max(x(2,irect(1,i)),x(2,irect(2,i)),
151 . x(2,irect(3,i)),x(2,irect(4,i)))
152 . -min(x(2,irect(1,i)),x(2,irect(2,i)),
153 . x(2,irect(3,i)),x(2,irect(4,i)))
154 zzz=max(x(3,irect(1,i)),x(3,irect(2,i)),
155 . x(3,irect(3,i)),x(3,irect(4,i)))
156 . -min(x(3,irect(1,i)),x(3,irect(2,i)),
157 . x(3,irect(3,i)),x(3,irect(4,i)))
158 curv_max(i) = half * max(xxx,yyy,zzz)
159 c_max = max(c_max,curv_max(i))
160 ENDDO
161 ELSE
162 DO i=1,nrtm
163 curv_max(i)=zero
164 ENDDO
165 ENDIF
166C-----
167 dd=zero
168 DO 10 l=1,nrtm
169C ELEMENT CONNECTIVITIES
170 n1=irect(1,l)
171 n2=irect(2,l)
172 n3=irect(3,l)
173 n4=irect(4,l)
174C LONGUEUR COTE 1
175 dx1=(x(1,n1)-x(1,n2))
176 dy1=(x(2,n1)-x(2,n2))
177 dz1=(x(3,n1)-x(3,n2))
178 dd1=sqrt(dx1**2+dy1**2+dz1**2)
179C LONGUEUR COTE 2
180 dx3=(x(1,n1)-x(1,n4))
181 dy3=(x(2,n1)-x(2,n4))
182 dz3=(x(3,n1)-x(3,n4))
183 dd2=sqrt(dx3**2+dy3**2+dz3**2)
184C LONGUEUR COTE 3
185 dx4=(x(1,n3)-x(1,n2))
186 dy4=(x(2,n3)-x(2,n2))
187 dz4=(x(3,n3)-x(3,n2))
188 dd3=sqrt(dx4**2+dy4**2+dz4**2)
189C LONGUEUR COTE 4
190 dx6=(x(1,n4)-x(1,n3))
191 dy6=(x(2,n4)-x(2,n3))
192 dz6=(x(3,n4)-x(3,n3))
193 dd4=sqrt(dx6**2+dy6**2+dz6**2)
194 dd=dd+ (dd1+dd2+dd3+dd4)
195 10 CONTINUE
196 dd0=dd/nrtm/four
197 IF(nrtm >0 .AND. nrtm <= 3 .AND. .not. is_used_with_law151) THEN
198 call margin_reduction(x,numnod,irect,nrtm,nsv,nsn,drad,gap,dgapload,bumult,stfn,dd0)
199 ENDIF
200 dd =dd0
201C DD = MAX(DD0,ONEP251*GAP)
202C DD = MAX(DD ,ONEP251*DRAD)
203C remove this additional test which breaks igap performance
204C in case this factor is needed, then needs to compute mean gap instead
205C
206C Marge: Bumult Bumult Engine Marge in Input (adjustable for performance)
207 marge = bumult*dd
208 tzinf = marge + max(gap+dgapload,drad)
209C marge_st: margin independent of bumult as input necessary to find the initial penalties in a parith/on manner
210 marge_st = bmul0*dd
211C 1st passage with margin x2 to find more candidates (amounts to taking bmul0 = 0.4 instead of 0.2)
212C IF(IDDLEVEL==0) MARGE_ST = 2*MARGE_ST
213 IF(iddlevel==0) marge_st = marge
214 tzinf_st = marge_st + max(gap+dgapload,drad)
215C SET TO ZERO TO PERFORM COMPLETE SEARCH CYCLE 0 ENGINE
216 dist = zero
217C TEST TO BY-PASS SECOND SEARCH
218C IF(IDDLEVEL==1 .AND. MARGE >= MARGE_ST) GOTO 999 !
219C----- DOMAIN BOUNDARIES
220 xmax_m=-ep30
221 ymax_m=-ep30
222 zmax_m=-ep30
223 xmin_m=ep30
224 ymin_m=ep30
225 zmin_m=ep30
226 100 CONTINUE
227 i_stok = 0
228 i_mem = 0
229C Loop over the domain to improve sorting performance
230 DO loc_proc=1,nspmd
231 nrtm_l=0
232 DO i=1,nrtm
233 IF(intercep(1,nin)%P(i)==loc_proc)THEN
234 nrtm_l=nrtm_l+1
235 index(nrtm_l)=i
236 END IF
237 END DO
238C
239c print *,NOINT,'***************start loop:',
240c . LOC_PROC,NSPMD,NRTM,NRTM_L
241 IF(nrtm_l == 0)cycle
242 mean_x=zero
243 mean_y=zero
244 mean_z=zero
245 DO k=1,nrtm_l
246 i = index(k)
247 j=irect(1,i)
248 xmax_m= max(xmax_m,x(1,j))
249 ymax_m= max(ymax_m,x(2,j))
250 zmax_m= max(zmax_m,x(3,j))
251 xmin_m= min(xmin_m,x(1,j))
252 ymin_m= min(ymin_m,x(2,j))
253 zmin_m= min(zmin_m,x(3,j))
254 mean_x=mean_x+x(1,j)
255 mean_y=mean_y+x(2,j)
256 mean_z=mean_z+x(3,j)
257 j=irect(2,i)
258 xmax_m= max(xmax_m,x(1,j))
259 ymax_m= max(ymax_m,x(2,j))
260 zmax_m= max(zmax_m,x(3,j))
261 xmin_m= min(xmin_m,x(1,j))
262 ymin_m= min(ymin_m,x(2,j))
263 zmin_m= min(zmin_m,x(3,j))
264 mean_x=mean_x+x(1,j)
265 mean_y=mean_y+x(2,j)
266 mean_z=mean_z+x(3,j)
267 j=irect(3,i)
268 xmax_m= max(xmax_m,x(1,j))
269 ymax_m= max(ymax_m,x(2,j))
270 zmax_m= max(zmax_m,x(3,j))
271 xmin_m= min(xmin_m,x(1,j))
272 ymin_m= min(ymin_m,x(2,j))
273 zmin_m= min(zmin_m,x(3,j))
274 mean_x=mean_x+x(1,j)
275 mean_y=mean_y+x(2,j)
276 mean_z=mean_z+x(3,j)
277 j=irect(4,i)
278 xmax_m= max(xmax_m,x(1,j))
279 ymax_m= max(ymax_m,x(2,j))
280 zmax_m= max(zmax_m,x(3,j))
281 xmin_m= min(xmin_m,x(1,j))
282 ymin_m= min(ymin_m,x(2,j))
283 zmin_m= min(zmin_m,x(3,j))
284 mean_x=mean_x+x(1,j)
285 mean_y=mean_y+x(2,j)
286 mean_z=mean_z+x(3,j)
287 END DO
288
289C MIN/MAX DOMAINE
290 xmin=xmin_m-tzinf_st
291 ymin=ymin_m-tzinf_st
292 zmin=zmin_m-tzinf_st
293 xmax=xmax_m+tzinf_st
294 ymax=ymax_m+tzinf_st
295 zmax=zmax_m+tzinf_st
296c print*,'bornes min:',XMIN,YMIN,ZMIN
297c print*,'bornes max:',XMAX,YMAX,ZMAX
298
299 mean_x=mean_x/max((4*nrtm_l),1)
300 mean_y=mean_y/max((4*nrtm_l),1)
301 mean_z=mean_z/max((4*nrtm_l),1)
302C STD DEVIATION & CRVOXEL
303 dev_x=zero
304 dev_y=zero
305 dev_z=zero
306 crvoxel(0:lrvoxel,0:lrvoxel)=0
307 nbx = lrvoxel
308 nby = lrvoxel
309 nbz = lrvoxel
310 DO k=1,nrtm_l
311 i = index(k)
312 n1 = irect(1,i)
313 n2 = irect(2,i)
314 n3 = irect(3,i)
315 n4 = irect(4,i)
316 xx1=x(1,n1)
317 xx2=x(1,n2)
318 xx3=x(1,n3)
319 xx4=x(1,n4)
320 xmaxe=max(xx1,xx2,xx3,xx4)
321 xmine=min(xx1,xx2,xx3,xx4)
322 dev_x=dev_x+(xx1-mean_x)**2+(xx2-mean_x)**2
323 . +(xx3-mean_x)**2+(xx4-mean_x)**2
324 yy1=x(2,n1)
325 yy2=x(2,n2)
326 yy3=x(2,n3)
327 yy4=x(2,n4)
328 ymaxe=max(yy1,yy2,yy3,yy4)
329 ymine=min(yy1,yy2,yy3,yy4)
330 dev_y=dev_y+(yy1-mean_y)**2+(yy2-mean_y)**2
331 . +(yy3-mean_y)**2+(yy4-mean_y)**2
332 zz1=x(3,n1)
333 zz2=x(3,n2)
334 zz3=x(3,n3)
335 zz4=x(3,n4)
336 zmaxe=max(zz1,zz2,zz3,zz4)
337 zmine=min(zz1,zz2,zz3,zz4)
338 dev_z=dev_z+(zz1-mean_z)**2+(zz2-mean_z)**2
339 . +(zz3-mean_z)**2+(zz4-mean_z)**2
340
341C index of voxels occupied by the facet
342
343 ix1=int(nbx*(xmine-tzinf_st-xmin)/(xmax-xmin))
344 iy1=int(nby*(ymine-tzinf_st-ymin)/(ymax-ymin))
345 iz1=int(nbz*(zmine-tzinf_st-zmin)/(zmax-zmin))
346 ix1=max(0,min(nbx,ix1))
347 iy1=max(0,min(nby,iy1))
348 iz1=max(0,min(nbz,iz1))
349 ix2=int(nbx*(xmaxe+tzinf_st-xmin)/(xmax-xmin))
350 iy2=int(nby*(ymaxe+tzinf_st-ymin)/(ymax-ymin))
351 iz2=int(nbz*(zmaxe+tzinf_st-zmin)/(zmax-zmin))
352 ix2=max(0,min(nbx,ix2))
353 iy2=max(0,min(nby,iy2))
354 iz2=max(0,min(nbz,iz2))
355
356 DO iz = iz1, iz2
357 DO iy = iy1, iy2
358 DO ix = ix1, ix2
359 crvoxel(iy,iz)=ibset(crvoxel(iy,iz),ix)
360 END DO
361 END DO
362 END DO
363
364 END DO
365 dev_x=sqrt(dev_x/max(4*nrtm_l,1))
366 dev_y=sqrt(dev_y/max(4*nrtm_l,1))
367 dev_z=sqrt(dev_z/max(4*nrtm_l,1))
368C we keep all in +/- 2 sigma => 95% of the population for normal law distribution
369 xminb=max(mean_x-2*dev_x,xmin)
370 yminb=max(mean_y-2*dev_y,ymin)
371 zminb=max(mean_z-2*dev_z,zmin)
372 xmaxb=min(mean_x+2*dev_x,xmax)
373 ymaxb=min(mean_y+2*dev_y,ymax)
374 zmaxb=min(mean_z+2*dev_z,zmax)
375C 2D special case test
376 IF(abs(xminb-xmaxb) < em10)THEN
377 xminb=xmin
378 xmaxb=xmax
379 END IF
380 IF(abs(yminb-ymaxb) < em10)THEN
381 yminb=ymin
382 ymaxb=ymax
383 END IF
384 IF(abs(zminb-zmaxb) < em10)THEN
385 zminb=zmin
386 zmaxb=zmax
387 END IF
388
389 xyzm(1,1) = xmin
390 xyzm(2,1) = ymin
391 xyzm(3,1) = zmin
392 xyzm(4,1) = xmax
393 xyzm(5,1) = ymax
394 xyzm(6,1) = zmax
395 xyzm(1,2) = xminb
396 xyzm(2,2) = yminb
397 xyzm(3,2) = zminb
398 xyzm(4,2) = xmaxb
399 xyzm(5,2) = ymaxb
400 xyzm(6,2) = zmaxb
401C
402 aaa = sqrt(nmn /
403 . ((xmaxb-xminb)*(ymaxb-yminb)
404 . +(ymaxb-yminb)*(zmaxb-zminb)
405 . +(zmaxb-zminb)*(xmaxb-xminb)))
406 aaa = 0.75*aaa
407
408 nbx = nint(aaa*(xmaxb-xminb))
409 nby = nint(aaa*(ymaxb-yminb))
410 nbz = nint(aaa*(zmaxb-zminb))
411 nbx = max(nbx,1)
412 nby = max(nby,1)
413 nbz = max(nbz,1)
414
415 nbx8=nbx
416 nby8=nby
417 nbz8=nbz
418 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
419 lvoxel8 = lvoxel
420
421 IF(res8 > lvoxel8) THEN
422 aaa = lvoxel
423 aaa = aaa/((nbx8+2)*(nby8+2)*(nbz8+2))
424 aaa = aaa**(third)
425 nbx = int((nbx+2)*aaa)-2
426 nby = int((nby+2)*aaa)-2
427 nbz = int((nbz+2)*aaa)-2
428 nbx = max(nbx,1)
429 nby = max(nby,1)
430 nbz = max(nbz,1)
431 ENDIF
432
433 nbx8=nbx
434 nby8=nby
435 nbz8=nbz
436 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
437
438 IF(res8 > lvoxel8) THEN
439 nbx = min(ihundred,max(nbx8,ione))
440 nby = min(ihundred,max(nby8,ione))
441 nbz = min(ihundred,max(nbz8,ione))
442 ENDIF
443
444C complete initialization of voxel
445 DO i=inivoxel,(nbx+2)*(nby+2)*(nbz+2)
446 voxel1(i)=0
447 ENDDO
448 inivoxel = max(inivoxel,(nbx+2)*(nby+2)*(nbz+2)+1)
449C------------------
450 200 CONTINUE
451C------------------
452!$OMP PARALLEL
453 CALL i7trivox1(
454 1 nsn ,i_mem ,irect ,x ,stf ,
455 2 stfn ,xyzm ,nsv ,
456 3 ncontact ,noint ,tzinf_st ,gap_s_l ,gap_m_l ,
457 4 voxel1 ,nbx ,nby ,nbz ,nrtm_l ,
458 5 igap ,gap ,gap_s ,gap_m ,gapmin ,
459 6 gapmax ,marge_st,curv_max ,bgapsmx ,istf ,
460 7 i_stok ,nin,
461 8 id ,titr ,drad ,index ,
462 9 iremnode,flagremnode,kremnode,remnode,
463 1 dgapload,ipari,intbuf_tab,
464 2 iix,iiy,iiz,local_next_nod,nrtm,is_used_with_law151 )
465!$OMP END PARALLEL
466C------------------
467
468 IF (i_mem == 2)THEN
469 RETURN
470 ENDIF
471C I_MEM = 1 ==> PAS ASSEZ DE MEMOIRE PILE
472C I_MEM = 2 ==> PAS ASSEZ DE MEMOIRE CANDIDATES
473 IF(i_mem==1)THEN
474 i_mem = 0
475 GO TO 100
476 ELSE IF(i_mem==2) THEN
477 marge_st = three_over_4*marge_st
478 tzinf_st = marge_st + max(gap,drad)
479 i_mem = 0
480 IF(marge_st<em03) THEN
481 CALL ancmsg(msgid=83,
482 . msgtype=msgerror,
483 . anmode=aninfo,
484 . i1=id,
485 . c1=titr)
486 ENDIF
487 GO TO 100
488 ENDIF
489C---------------------------------
490 END DO ! end loop over NSPMD domains
491
492 IF(.NOT.type18)THEN
493 IF(nsn/=0)THEN
494 WRITE(iout,*)' POSSIBLE IMPACT NUMBER:',i_stok,' (<=',
495 . 1+(i_stok-1)/nsn,'*NSN)'
496
497C
498 ELSE
499 CALL ancmsg(msgid=552,
500 . msgtype=msgwarning,
501 . anmode=aninfo_blind_2,
502 . i1=id,
503 . c1=titr)
504 ENDIF
505 endif!(.NOT.TYPE18)
506C
507 DEALLOCATE( index )
508 DEALLOCATE( curv_max )
509 DEALLOCATE(local_next_nod)
510 DEALLOCATE(iix)
511 DEALLOCATE(iiy)
512 DEALLOCATE(iiz)
513 RETURN
514 END
subroutine i7buc_vox1(x, irect, nsv, bumult, nseg, nmn, nrtm, mwa, nsn, gap, xyzm, noint, i_stok, dist, tzinf, msr, stf, stfn, multimp, istf, iddlevel, itab, gap_s, gap_m, igap, gapmin, gapmax, inacti, gap_s_l, gap_m_l, i_mem, ncont, icurv, bgapsmx, id, titr, drad, intercep, nin, iremnode, flagremnode, kremnode, remnode, dgapload, npari, ipari, intbuf_tab, is_used_with_law151)
Definition i7buc_vox1.F:49
subroutine i7trivox1(nsn, i_mem, irect, x, stf, stfn, xyzm, nsv, mulnsn, noint, tzinf, gap_s_l, gap_m_l, voxel, nbx, nby, nbz, nrtm_l, igap, gap, gap_s, gap_m, gapmin, gapmax, marge, curv_max, bgapsmx, istf, i_stok, nin, id, titr, drad, index, iremnode, flagremnode, kremnode, remnode, dgapload, ipari, intbuf_tab, iix, iiy, iiz, local_next_nod, nrtm, is_used_with_law151)
Definition i7trivox1.F:48
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
Definition law100_upd.F:274
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
integer, parameter nchartitle
integer, dimension(lvoxel) voxel1
Definition tri7box.F:53
integer inivoxel
Definition tri7box.F:53
integer, dimension(0:lrvoxel, 0:lrvoxel) crvoxel
Definition tri7box.F:56
integer lvoxel
Definition tri7box.F:51
integer lrvoxel
Definition tri7box.F:54
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:895