OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i11buce.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!|| i11buce_vox ../engine/source/interfaces/intsort/i11buce.F
25!||--- called by ------------------------------------------------------
26!|| i11main_tri ../engine/source/interfaces/intsort/i11main_tri.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| i11trivox ../engine/source/interfaces/intsort/i11trivox.F
31!|| my_barrier ../engine/source/system/machine.F
32!||--- uses -----------------------------------------------------
33!|| message_mod ../engine/share/message_module/message_mod.F
34!|| tri11 ../engine/share/modules/tri11_mod.F
35!|| tri7box ../engine/share/modules/tri7box.F
36!||====================================================================
37 SUBROUTINE i11buce_vox(
38 1 X ,IRECTS ,IRECTM ,NRTS ,NMN ,
39 2 NRTM ,NSN ,CAND_M ,CAND_S ,MAXGAP ,
40 3 NOINT ,II_STOK ,TZINF ,MAXBOX ,MINBOX ,
41 4 NB_N_B ,ESHIFT ,ILD ,BMINMA ,NCONTACT,
42 6 ADDCM ,CHAINE ,NIN ,ITAB ,NRTSR ,
43 7 NCONT ,GAP_S , STIFS ,PENIS ,IGAP ,
44 8 STIFM ,IAUTO , I_MEM ,ITASK ,IFORM ,
45 9 IFPEN ,DRAD , GAP_M , GAP_S_L,
46 1 GAP_M_L ,GAPMIN, BGAPSMX, GAP,
47 2 FLAGREMNODE,KREMNODE,REMNODE,DGAPLOAD)
48C-----------------------------------------------
49C M o d u l e s
50C-----------------------------------------------
51 USE message_mod
52 USE tri7box
53 USE tri11
54
55C============================================================================
56C I m p l i c i t T y p e s
57C-----------------------------------------------
58#include "implicit_f.inc"
59#include "comlock.inc"
60C-----------------------------------------------
61C C o m m o n B l o c k s
62C-----------------------------------------------
63#include "units_c.inc"
64#include "warn_c.inc"
65C-----------------------------------------------
66C D u m m y A r g u m e n t s
67C-----------------------------------------------
68 INTEGER NMN, NRTM, NSN, NOINT,NRTS, NIN, NRTSR,
69 . IGAP,IAUTO, I_MEM, ITASK
70 INTEGER IRECTS(2,*),IRECTM(2,*),ADDCM(*),CHAINE(2,*)
71 INTEGER CAND_M(*),CAND_S(*),IFPEN(*),FLAGREMNODE,KREMNODE(*),REMNODE(*)
72 INTEGER ESHIFT,ILD,NB_N_B, NCONTACT, NCONT, ITAB(*),
73 . IFORM,II_STOK
74C REAL
75 my_real
76 . TZINF,MAXBOX,MINBOX,BMINMA(6),BGAPSMX
77 my_real
78 . maxgap,gapmin,gap
79 my_real , INTENT(IN) :: dgapload,drad
80 my_real
81 . x(3,*),stifs(*),penis(2,*),stifm(*),
82 . gap_s(*),gap_m(*),gap_s_l(*),gap_m_l(*)
83C-----------------------------------------------
84C L o c a l V a r i a b l e s
85C-----------------------------------------------
86 INTEGER I_ADD_MAX,ISZNSNR
87 parameter(i_add_max = 1001)
88C
89 INTEGER I, I_ADD, MAXSIZ,
90 . add(2,i_add_max)
91 my_real
92 . xyzm(6,i_add_max-1), marge, aaa
93 INTEGER NBX,NBY,NBZ
94 INTEGER (KIND=8) :: NBX8,NBY8,NBZ8,RES8,LVOXEL8
95C-----------------------------------------------
96C definition from TRI7BOX module
97C-----------------------------------------------
98C
99C-----------------------------------------------
100C S o u r c e L i n e s
101C-----------------------------------------------
102C
103C----- sorting by boxes
104C
105C-----------------------------------------------
106C if we don't have enough memory for the stacks we restart the sorting
107C by incrementing nb_n_b (number of nodes per finished box)
108C
109C POINTEUR NOM TAILLE
110C P1........Elt Bas Pile NRTM
111C P2........Elt PILE 3*NRTM
112C P21.......Elt Bas Pile NRTS
113C P22.......Elt PILE 3*NRTS
114 maxsiz = 3*(max(nrtm,nrts+nrtsr)+100)
115C
116C-----initialization of addresses and x,y,z
117C
118C ADDE ADDN X Y Z
119C 1 1 XMIN YMIN ZMIN
120C 1 1 XMAX YMAX ZMAX
121C
122 add(1,1) = 0
123 add(2,1) = 0
124 add(1,2) = 0
125 add(2,2) = 0
126 i_add = 1
127 xyzm(1,i_add) = bminma(4)
128 xyzm(2,i_add) = bminma(5)
129 xyzm(3,i_add) = bminma(6)
130 xyzm(4,i_add) = bminma(1)
131 xyzm(5,i_add) = bminma(2)
132 xyzm(6,i_add) = bminma(3)
133 i_mem = 0
134C
135 IF (iform /= 2) THEN
136 isznsnr = 0
137 DO i=1,nrtm
138 addcm(i)=0
139 ENDDO
140 ELSE
141 isznsnr = nrtsr
142 ENDIF
143C
144C
145C-----start of sorting phase
146
147 marge = tzinf - max(maxgap+dgapload,drad)
148
149 IF( nmn /= 0 ) THEN
150 aaa = sqrt(nmn /
151 . ((bminma(1)-bminma(4))*(bminma(2)-bminma(5))
152 . +(bminma(2)-bminma(5))*(bminma(3)-bminma(6))
153 . +(bminma(3)-bminma(6))*(bminma(1)-bminma(4))))
154 ELSE
155 aaa = 0
156 ENDIF
157
158 aaa = 0.75*aaa
159
160 nbx = nint(aaa*(bminma(1)-bminma(4)))
161 nby = nint(aaa*(bminma(2)-bminma(5)))
162 nbz = nint(aaa*(bminma(3)-bminma(6)))
163 nbx = max(nbx,1)
164 nby = max(nby,1)
165 nbz = max(nbz,1)
166
167 nbx8=nbx
168 nby8=nby
169 nbz8=nbz
170 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
171 lvoxel8 = lvoxel
172
173 IF(res8 > lvoxel8)THEN
174 aaa = lvoxel
175 aaa = aaa/((nbx8+2)*(nby8+2)*(nbz8+2))
176 aaa = aaa**(third)
177 nbx = int((nbx+2)*aaa)-2
178 nby = int((nby+2)*aaa)-2
179 nbz = int((nbz+2)*aaa)-2
180 nbx = max(nbx,1)
181 nby = max(nby,1)
182 nbz = max(nbz,1)
183 nbx8 = nbx
184 nby8 = nby
185 nbz8 = nbz
186 res8=(nbx8+2)*(nby8+2)*(nbz8+2)
187 END IF
188C If still too many voxels:
189C Reduction of the number of voxels
190 IF(res8 > lvoxel8) THEN
191 nbx = min(100,max(nbx8,1))
192 nby = min(100,max(nby8,1))
193 nbz = min(100,max(nbz8,1))
194 END IF
195
196 DO i=inivoxel,(nbx+2)*(nby+2)*(nbz+2)
197 voxel1(i)=0
198 ENDDO
199 inivoxel = max(inivoxel,(nbx+2)*(nby+2)*(nbz+2)+1)
200
201 !print *, "voxel search"
202
203 CALL i11trivox(
204 1 irects ,irectm ,x ,nrtm ,nrtsr ,
205 2 xyzm ,ii_stok ,cand_s ,cand_m ,ncontact,
206 3 noint ,tzinf ,i_mem ,eshift ,addcm ,
207 4 chaine ,nrts ,itab ,stifs ,stifm ,
208 5 iauto ,voxel1 ,nbx ,nby ,nbz ,
209 6 itask ,ifpen ,iform ,gapmin ,drad ,
210 7 marge ,gap_s ,gap_m ,gap_s_l, gap_m_l,
211 8 bgapsmx, igap ,gap ,flagremnode,kremnode,
212 9 remnode,dgapload )
213
214 CALL my_barrier
215
216C
217C I_MEM = 1 ==> N/A
218C I_MEM = 2 ==> PAS ASSEZ DE MEMOIRE CANDIDATES
219C I_MEM = 3 ==> N/A
220
221
222C === WRITE CANDIDATES IN fort.[900 + ISPMD] files
223c IF ( ) THEN
224c DO I = 1, II_STOK
225c IF(CAND_S(I) <= NRTS) THEN
226c WRITE(900+ISPMD,*) NOINT,ITAB(IRECTS(1,CAND_S(I))),
227c . ITAB(IRECTS(2,CAND_S(I))),ITAB(IRECTM(1,CAND_M(I))),ITAB(IRECTM(2,CAND_M(I)))
228c ELSE
229c WRITE(900+ISPMD,*) -NOINT,ITAB(IRECTS(1,CAND_S(I)))
230c . ,ITAB(IRECTS(2,CAND_S(I))),ITAB(IRECTM(1,CAND_M(I))),ITAB(IRECTM(2,CAND_M(I)))
231c ENDIF
232c ENDDO
233c CALL FLUSH(900+ISPMD)
234c STOP
235c ENDIF
236
237
238
239 IF (i_mem == 2) RETURN
240
241 IF(i_mem==1)THEN
242 nb_n_b = nb_n_b + 1
243 IF ( nb_n_b > max(nrtm,nrts)) THEN
244 CALL ancmsg(msgid=85,anmode=aninfo,
245 . i1=noint)
246 CALL arret(2)
247 ENDIF
248 ild = 1
249 ELSEIF(i_mem==2) THEN
250 IF(debug(1)>=1) THEN
251 iwarn = iwarn+1
252#include "lockon.inc"
253 WRITE(istdo,*)' **WARNING INTERFACE/MEMORY'
254 WRITE(iout,*)' **WARNING INTERFACE NB:',noint
255 WRITE(iout,*)' TOO MANY POSSIBLE IMPACTS'
256 WRITE(iout,*)' SIZE OF INFLUENCE ZONE IS'
257 WRITE(iout,*)' MULTIPLIED BY 0.75'
258#include "lockoff.inc"
259 ENDIF
260 tzinf = three_over_4*tzinf
261C do not decrease the box size
262C MINBOX= THREE_OVER_4*MINBOX
263C MAXBOX= THREE_OVER_4*MAXBOX
264 IF( tzinf<=max(maxgap+dgapload,drad) ) THEN
265 CALL ancmsg(msgid=98,anmode=aninfo,
266 . i1=noint,c1='(I11BUCE)')
267 CALL arret(2)
268 ENDIF
269 ild = 1
270 ELSEIF(i_mem==3)THEN
271 nb_n_b = nb_n_b + 1
272 IF ( nb_n_b > max(nrtm,nrts)) THEN
273 CALL ancmsg(msgid=99,anmode=aninfo,
274 . i1=noint,c1='(I11BUCE)')
275 CALL arret(2)
276 ENDIF
277 ild = 1
278 ENDIF
279C
280 RETURN
281 END
282
283C --- --- --- Chd|====================================================================
284C --- --- --- Chd| I11BUCE src/intsort/i11buce.F
285C --- --- --- Chd|-- called by -----------
286C --- --- --- Chd| I11MAIN_TRI src/intsort/i11main_tri.F
287C --- --- --- Chd|-- calls ---------------
288C --- ------- CHD |Ancmsg SRC/Message/message.f
289C --- ------- CHD |SRC stop/exit/stop. F
290C --- --- --- Chd| I11TRI src/intsort/i11tri.F
291C --- --- --- Chd| I11TRIVOX src/intsort/i11trivox.F
292C --- --- --- Chd| MY_BARRIER src/spe/machine.F
293C --- --- --- Chd| MESSAGE_MOD share/message_module/message_mod.F
294C --- --- --- Chd| TRI11 share/modules/tri11_mod.F
295C --- --- --- Chd| TRI7BOX share/modules/tri7box.F
296C --- --- --- Chd|====================================================================
297C --- --- --- SUBROUTINE I11BUCE(
298C --- --- --- 1 X ,IRECTS ,IRECTM ,NRTS ,NMN ,
299C --- --- --- 2 NRTM ,NSN ,CAND_M ,CAND_S ,GAP ,
300C --- --- --- 3 NOINT ,II_STOK ,TZINF ,MAXBOX ,MINBOX ,
301C --- --- --- 4 NB_N_B ,ESHIFT ,ILD ,BMINMA ,NCONTACT,
302C --- --- --- 6 ADDCM ,CHAINE ,NIN ,ITAB ,NRTSR ,
303C --- --- --- 7 NCONT ,GAP_S , STIFS ,PENIS ,IGAP ,
304C --- --- --- 8 STIFM ,IAUTO , I_MEM ,ITASK ,IFORM ,
305C --- --- --- 9 IFPEN ,DRAD )
306C --- --- --- C-----------------------------------------------
307C --- --- --- C M o d u l e s
308C --- --- --- C-----------------------------------------------
309C --- --- --- USE MESSAGE_MOD
310C --- --- --- USE TRI7BOX
311C --- --- --- USE TRI11
312C --- --- ---
313C --- --- --- C============================================================================
314C --- --- --- C I m p l i c i t T y p e s
315C --- --- --- C-----------------------------------------------
316C --- --- --- #include "implicit_f.inc"
317C --- --- --- #include "comlock.inc"
318C --- --- --- C-----------------------------------------------
319C --- --- --- C C o m m o n B l o c k s
320C --- --- --- C-----------------------------------------------
321C --- --- --- #include "units_c.inc"
322C --- --- --- #include "warn_c.inc"
323C --- --- --- #include "com01_c.inc"
324C --- --- --- #include "com04_c.inc"
325C --- --- --- #include "com08_c.inc"
326C --- --- --- #include "scr05_c.inc"
327C --- --- --- #include "task_c.inc"
328C --- --- --- #include "param_c.inc"
329C --- --- --- C-----------------------------------------------
330C --- --- --- C D u m m y A r g u m e n t s
331C --- --- --- C-----------------------------------------------
332C --- --- --- INTEGER NMN, NRTM, NSN, NOINT,IDT,NRTS, NIN, NRTSR,
333C --- --- --- . IGAP,IAUTO, I_MEM, ITASK
334C --- --- --- INTEGER IRECTS(2,*),IRECTM(2,*),ADDCM(*),CHAINE(2,*)
335C --- --- --- INTEGER CAND_M(*),CAND_S(*),IFPEN(*)
336C --- --- --- INTEGER ESHIFT,ILD,NB_N_B, NCONTACT, NCONT, ITAB(*),
337C --- --- --- . IFORM,II_STOK
338C --- --- --- C REAL
339C --- --- --- my_real
340C --- --- --- . GAP,TZINF,MAXBOX,MINBOX,BMINMA(6),DRAD
341C --- --- --- my_real
342C --- --- --- . X(3,*),GAP_S(*),STIFS(*),PENIS(2,*),STIFM(*)
343C --- --- --- C-----------------------------------------------
344C --- --- --- C G l o b a l P a r a m e t e r s
345C --- --- --- C-----------------------------------------------
346C --- --- --- #include "mvsiz_p.inc"
347C --- --- --- C-----------------------------------------------
348C --- --- --- C L o c a l V a r i a b l e s
349C --- --- --- C-----------------------------------------------
350C --- --- --- INTEGER I_ADD_MAX,ISZNSNR
351C --- --- --- PARAMETER (I_ADD_MAX = 1001)
352C --- --- --- C
353C --- --- --- INTEGER I, J, N1, N2, I_ADD, MAXSIZ,JJ,
354C --- --- --- . ADD(2,I_ADD_MAX), N
355C --- --- --- my_real
356C --- --- --- . XYZM(6,I_ADD_MAX-1), MARGE, AAA
357C --- --- --- INTEGER NB_OLD(2,I_ADD_MAX+1)
358C --- --- --- INTEGER NBX,NBY,NBZ
359C --- --- --- INTEGER (KIND=8) :: NBX8,NBY8,NBZ8,RES8,LVOXEL8
360C --- --- --- C-----------------------------------------------
361C --- --- --- C definition from TRI7BOX module
362C --- --- --- C-----------------------------------------------
363C --- --- --- C
364C --- --- --- C-----------------------------------------------
365C --- --- --- C S o u r c e L i n e s
366C --- --- --- C-----------------------------------------------
367C --- --- --- C-----------------------------------------------
368C --- --- --- C
369C --- --- --- C----- SORTING BY BOXES
370C --- --- --- C
371C --- --- --- C-----------------------------------------------
372C --- --- --- C if we don't have enough memory for the stacks we restart the sorting
373C --- --- --- C by incrementing nb_n_b (number of nodes per finished box)
374C --- --- --- C
375C --- --- --- C POINTEUR NOM TAILLE
376C --- --- --- C P1........Elt Bas Pile NRTM
377C --- --- --- C P2........Elt PILE 3*NRTM
378C --- --- --- C P21.......Elt Bas Pile NRTS
379C --- --- --- C P22.......Elt PILE 3*NRTS
380C --- --- --- MAXSIZ = 3*(MAX(NRTM,NRTS+NRTSR)+100)
381C --- --- --- C
382C --- --- --- C-----initialization of addresses and x,y,z
383C --- --- --- C
384C --- --- --- C ADDE ADDN X Y Z
385C --- --- --- C 1 1 XMIN YMIN ZMIN
386C --- --- --- C 1 1 XMAX YMAX ZMAX
387C --- --- --- C
388C --- --- --- ADD(1,1) = 0
389C --- --- --- ADD(2,1) = 0
390C --- --- --- ADD(1,2) = 0
391C --- --- --- ADD(2,2) = 0
392C --- --- --- I_ADD = 1
393C --- --- --- XYZM(1,I_ADD) = BMINMA(4)
394C --- --- --- XYZM(2,I_ADD) = BMINMA(5)
395C --- --- --- XYZM(3,I_ADD) = BMINMA(6)
396C --- --- --- XYZM(4,I_ADD) = BMINMA(1)
397C --- --- --- XYZM(5,I_ADD) = BMINMA(2)
398C --- --- --- XYZM(6,I_ADD) = BMINMA(3)
399C --- --- --- I_MEM = 0
400C --- --- --- C
401C --- --- --- IF (IFORM /= 2) THEN
402C --- --- --- ISZNSNR = 0
403C --- --- --- DO I=1,NRTM
404C --- --- --- ADDCM(I)=0
405C --- --- --- ENDDO
406C --- --- --- ELSE
407C --- --- --- ISZNSNR = NRTSR
408C --- --- --- ENDIF
409C --- --- --- C
410C --- --- --- C
411C --- --- --- C-----beginning of the sorting phase
412C --- --- --- C
413C --- --- --- GOTO 50 !comment to disable the voxel sorting
414C --- --- --- print *, "bucket search"
415C --- --- --- CALL I11TRI(
416C --- --- --- 1 ADD ,
417C --- --- --- 2 IRECTS ,IRECTM ,X ,NRTM ,NRTSR ,
418C --- --- --- 3 XYZM ,I_ADD ,MAXSIZ ,II_STOK ,CAND_S ,
419C --- --- --- 4 CAND_M ,NCONTACT,NOINT ,TZINF ,MAXBOX ,
420C --- --- --- 5 MINBOX ,I_MEM ,NB_N_B ,I_ADD_MAX,ESHIFT ,
421C --- --- --- 6 ADDCM ,CHAINE ,NRTS ,ITAB ,NB_OLD ,
422C --- --- --- 7 STIFS ,STIFM ,IAUTO ,NIN ,IFPEN ,
423C --- --- --- 8 IFORM)
424C --- --- ---
425C --- --- --- !cts we disable the voxel sorting routine for now
426C --- --- --- GOTO 100
427C --- --- ---
428C --- --- --- 50 CONTINUE
429C --- --- ---
430C --- --- --- MARGE = TZINF - MAX(GAP,DRAD)
431C --- --- ---
432C --- --- --- AAA = SQRT(NMN /
433C --- --- --- . ((BMINMA(1)-BMINMA(4))*(BMINMA(2)-BMINMA(5))
434C --- --- --- . +(BMINMA(2)-BMINMA(5))*(BMINMA(3)-BMINMA(6))
435C --- --- --- . +(BMINMA(3)-BMINMA(6))*(BMINMA(1)-BMINMA(4))))
436C --- --- ---
437C --- --- --- AAA = 0.75*AAA
438C --- --- ---
439C --- --- --- NBX = NINT(AAA*(BMINMA(1)-BMINMA(4)))
440C --- --- --- NBY = NINT(AAA*(BMINMA(2)-BMINMA(5)))
441C --- --- --- NBZ = NINT(AAA*(BMINMA(3)-BMINMA(6)))
442C --- --- --- NBX = MAX(NBX,1)
443C --- --- --- NBY = MAX(NBY,1)
444C --- --- --- NBZ = MAX(NBZ,1)
445C --- --- ---
446C --- --- --- NBX8=NBX
447C --- --- --- NBY8=NBY
448C --- --- --- NBZ8=NBZ
449C --- --- --- RES8=(NBX8+2)*(NBY8+2)*(NBZ8+2)
450C --- ------- lvoxel8 = lvoxel
451C --- --- ---
452C --- --- --- IF(RES8 > LVOXEL8)THEN
453C --- --- --- AAA = LVOXEL
454C --- --- --- AAA = AAA/((NBX8+2)*(NBY8+2)*(NBZ8+2))
455C --- --- --- AAA = AAA**(THIRD)
456C --- --- --- NBX = INT((NBX+2)*AAA)-2
457C --- --- --- NBY = INT((NBY+2)*AAA)-2
458C --- --- --- NBZ = INT((NBZ+2)*AAA)-2
459C --- --- --- NBX = MAX(NBX,1)
460C --- --- --- NBY = MAX(NBY,1)
461C --- --- --- NBZ = MAX(NBZ,1)
462C --- --- --- NBX8 = NBX
463C --- --- --- NBY8 = NBY
464C --- --- --- NBZ8 = NBZ
465C --- --- --- RES8=(NBX8+2)*(NBY8+2)*(NBZ8+2)
466C --- --- --- END IF
467C --- --- ---
468C --- --- --- IF(RES8 > LVOXEL8) THEN
469C --- --- --- stop 678
470C --- --- --- END IF
471C --- --- ---
472C --- --- --- DO I=INIVOXEL,(NBX+2)*(NBY+2)*(NBZ+2)
473C --- --- --- VOXEL1(I)=0
474C --- --- --- ENDDO
475C --- --- --- INIVOXEL = MAX(INIVOXEL,(NBX+2)*(NBY+2)*(NBZ+2)+1)
476C --- --- ---
477C --- --- --- !print *, "voxel search"
478C --- --- ---
479C --- --- --- CALL I11TRIVOX(
480C --- --- --- 1 IRECTS ,IRECTM ,X ,NRTM ,NRTSR ,
481C --- --- --- 2 XYZM ,II_STOK ,CAND_S ,CAND_M ,NCONTACT,
482C --- --- --- 3 NOINT ,TZINF ,I_MEM ,ESHIFT ,ADDCM ,
483C --- --- --- 4 CHAINE ,NRTS ,ITAB ,STIFS ,STIFM ,
484C --- --- --- 5 IAUTO ,VOXEL1 ,NBX ,NBY ,NBZ ,
485C --- --- --- 6 ITASK ,IFPEN ,IFORM )
486C --- --- ---
487C --- --- --- CALL MY_BARRIER
488C --- --- ---
489C --- --- --- 100 CONTINUE
490C --- --- ---
491C --- --- --- C
492C --- --- --- C I_MEM = 1 ==> N/A
493C --- --- --- C I_MEM = 2 ==> PAS ASSEZ DE MEMOIRE CANDIDATES
494C --- --- --- C I_MEM = 3 ==> N/A
495C --- --- ---
496C --- --- --- IF (I_MEM == 2) RETURN
497C --- --- --- IF(I_MEM==1)THEN
498C --- --- --- NB_N_B = NB_N_B + 1
499C --- --- --- IF ( NB_N_B > MAX(NRTM,NRTS)) THEN
500C --- --- --- CALL ANCMSG(MSGID=85,ANMODE=ANINFO,
501C --- --- --- . I1=NOINT)
502C --- --- --- CALL ARRET(2)
503C --- --- --- ENDIF
504C --- --- --- ILD = 1
505C --- --- --- ELSEIF(I_MEM==2) THEN
506C --- --- --- IF(DEBUG(1)>=1) THEN
507C --- --- --- IWARN = IWARN+1
508C --- --- --- #include "lockon.inc"
509C --- --- --- WRITE(ISTDO,*)' **WARNING INTERFACE/MEMORY'
510C --- --- --- WRITE(IOUT,*)' **WARNING INTERFACE NB:',NOINT
511C --- --- --- WRITE(IOUT,*)' TOO MANY POSSIBLE IMPACTS'
512C --- --- --- WRITE(IOUT,*)' SIZE OF INFLUENCE ZONE IS'
513C --- --- --- WRITE(IOUT,*)' MULTIPLIED BY 0.75'
514C --- --- --- #include "lockoff.inc"
515C --- --- --- ENDIF
516C --- --- --- TZINF = THREE_OVER_4*TZINF
517C --- --- --- C do not decrease the box size
518C --- --- --- C MINBOX= THREE_OVER_4*MINBOX
519C --- --- --- C MAXBOX= THREE_OVER_4*MAXBOX
520C --- --- --- IF( TZINF<=MAX(GAP,DRAD) ) THEN
521C --- --- --- CALL ANCMSG(MSGID=98,ANMODE=ANINFO,
522C --- --- --- . I1=NOINT,C1='(I11BUCE)')
523C --- --- --- CALL ARRET(2)
524C --- --- --- ENDIF
525C --- --- --- ILD = 1
526C --- --- --- ELSEIF(I_MEM==3)THEN
527C --- --- --- NB_N_B = NB_N_B + 1
528C --- --- --- IF ( NB_N_B > MAX(NRTM,NRTS)) THEN
529C --- --- --- CALL ANCMSG(MSGID=99,ANMODE=ANINFO,
530C --- --- --- . I1=NOINT,C1='(I11BUCE)')
531C --- --- --- CALL ARRET(2)
532C --- --- --- ENDIF
533C --- --- --- ILD = 1
534C --- --- --- ENDIF
535C --- --- --- C
536C --- --- --- RETURN
537C --- --- --- END
subroutine i11buce_vox(x, irects, irectm, nrts, nmn, nrtm, nsn, cand_m, cand_s, maxgap, noint, ii_stok, tzinf, maxbox, minbox, nb_n_b, eshift, ild, bminma, ncontact, addcm, chaine, nin, itab, nrtsr, ncont, gap_s, stifs, penis, igap, stifm, iauto, i_mem, itask, iform, ifpen, drad, gap_m, gap_s_l, gap_m_l, gapmin, bgapsmx, gap, flagremnode, kremnode, remnode, dgapload)
Definition i11buce.F:48
subroutine i11trivox(irects, irectm, x, nrtm, nrtsr, xyzm, ii_stok, cand_s, cand_m, nsn4, noint, tzinf, i_mem, eshift, addcm, chaine, nrts, itab, stfs, stfm, iauto, voxel, nbx, nby, nbz, itask, ifpen, iform, gapmin, drad, marge, gap_s, gap_m, gap_s_l, gap_m_l, bgapsmx, igap, gap, flagremnode, kremnode, remnode, dgapload)
Definition i11trivox.F:46
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
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:895
subroutine arret(nn)
Definition arret.F:86
subroutine my_barrier
Definition machine.F:31