OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i10ke3.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!|| i10ke3 ../engine/source/interfaces/int10/i10ke3.F
25!||--- called by ------------------------------------------------------
26!|| imp_int_k ../engine/source/implicit/imp_int_k.F
27!||--- calls -----------------------------------------------------
28!|| ass_spmd ../engine/source/implicit/assem_int.F
29!|| assem_int ../engine/source/implicit/assem_int.F
30!|| i10keg3 ../engine/source/interfaces/int10/i10keg3.F
31!|| i7cork3 ../engine/source/interfaces/int07/i7cork3.F
32!|| i7dstk3 ../engine/source/interfaces/int07/i7dstk3.F
33!||--- uses -----------------------------------------------------
34!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
35!||====================================================================
36 SUBROUTINE i10ke3( A ,V ,MS ,
37 1 IPARI ,INTBUF_TAB ,X ,NIN ,
38 2 NUM_IMP,CAND_N,CAND_E ,INDEX2,
39 3 IDDL ,K_DIAG ,K_LT ,IADK ,JDIK ,
40 4 GAP_IMP,LREM )
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE intbufdef_mod
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C G l o b a l P a r a m e t e r s
51C-----------------------------------------------
52#include "mvsiz_p.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "com01_c.inc"
57#include "com08_c.inc"
58#include "param_c.inc"
59#include "impl2_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER IPARI(*), INDEX2(*)
64 INTEGER NUM_IMP,CAND_N(*),CAND_E(*),NIN,IDDL(*),
65 . IADK(*) ,JDIK(*),LREM
66 my_real
67 . a(3,*), ms(*), v(3,*),x(*),k_diag(*),k_lt(*),
68 . gap_imp
69
70 TYPE(intbuf_struct_) INTBUF_TAB
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER I, I_STOK, JLT_NEW, JLT , NFT, IVIS2,
75 . IBC, NOINT, NSEG, ISECIN, IBAG,
76 . IGAP, ITIED, IFQ, MFROT, IGSTI,IDUM
77 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
78 . nsvg(mvsiz), i3n
79C REAL
80 my_real
81 . startt, fric, gap, stopt,gapmin,
82 . kmin, kmax, gapmax
83C-----------------------------------------------
84C REAL
85 my_real
86 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
87 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
88 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
89 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
90 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
91 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
92 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
93 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
94 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
95 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
96 . n1(mvsiz), n2(mvsiz), n3(mvsiz), off(mvsiz),
97 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),
98 . msi(mvsiz),ki11(9,mvsiz),kj11(9,mvsiz),
99 . kk11(9,mvsiz),kl11(9,mvsiz),ki12(9,mvsiz),
100 . kj12(9,mvsiz),kk12(9,mvsiz),kl12(9,mvsiz)
101C-----------------------------------------------
102 INTEGER :: NSN, NTY
103C
104 NSN =ipari(5)
105 nty =ipari(7)
106 startt=intbuf_tab%VARIABLES(3)
107 stopt =intbuf_tab%VARIABLES(11)
108 IF(startt>tt) RETURN
109 IF(tt>stopt) RETURN
110 igap =ipari(21)
111 itied =nint(intbuf_tab%VARIABLES(1))
112 gap =intbuf_tab%VARIABLES(2)
113 gapmin=intbuf_tab%VARIABLES(13)
114 gap_imp=min(gap_imp,gapmin)
115 igsti=ipari(34)
116 gapmax=intbuf_tab%VARIABLES(16)
117 kmin =intbuf_tab%VARIABLES(17)
118 kmax =intbuf_tab%VARIABLES(18)
119C
120 i_stok = num_imp
121C 90c1 LREM=0
122C
123 DO nft = 0 , i_stok - 1 , nvsiz
124 jlt = min( nvsiz, i_stok - nft )
125 CALL i7cork3(jlt ,x,intbuf_tab%IRECTM,intbuf_tab%NSV,
126 1 cand_e(nft+1) ,cand_n(nft+1) ,intbuf_tab%STFM,
127 2 intbuf_tab%STFNS,x1 ,x2 ,
128 2 x3 ,x4 ,y1 ,y2 ,y3 ,
129 3 y4 ,z1 ,z2 ,z3 ,z4 ,
130 4 xi ,yi ,zi ,stif ,ix1 ,
131 5 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
132 6 gapmin ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,gapv,
133 7 ms ,vxi ,vyi ,vzi ,msi ,
134 8 v ,igsti ,kmin ,kmax ,gapmax,
135 9 gapmin ,nin ,nty ,nsn )
136 CALL i7dstk3(
137 1 jlt ,cand_n(nft+1) ,cand_e(nft+1) ,
138 2 x1 ,x2 ,x3 ,x4 ,y1 ,
139 3 y2 ,y3 ,y4 ,z1 ,z2 ,
140 4 z3 ,z4 ,xi ,yi ,zi ,
141 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
142 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
143 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
144 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
145 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
146 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
147 b idum ,gapv ,itied ,intbuf_tab%CAND_P,
148 c index2(nft+1) )
149 CALL i10keg3(jlt ,a ,v ,ms ,fric ,
150 1 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
151 2 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
152 3 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
153 4 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
154 5 p1 ,p2 ,p3 ,p4 ,nin ,
155 6 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
156 7 gapv,itied ,intbuf_tab%CAND_P,index2(nft+1),
157 8 stif ,vxi ,vyi ,vzi ,msi ,
158 9 x1 ,x2 ,x3 ,x4 ,y1 ,
159 a y2 ,y3 ,y4 ,z1 ,z2 ,
160 b z3 ,z4 ,ki11 ,ki12 ,kj11 ,
161 c kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
162 d off ,sk_int ,lrem )
163 IF (nspmd>1) THEN
164 lrem = lrem + jlt
165 CALL ass_spmd(3 ,nsvg ,ix1 ,ix2 ,ix3 ,
166 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
167 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
168 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
169 4 off ,nin )
170 lrem = lrem - jlt
171 ENDIF
172 CALL assem_int(3 ,nsvg ,ix1 ,ix2 ,ix3 ,
173 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
174 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
175 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
176 4 off )
177 ENDDO
178C
179 RETURN
180 END
181!||====================================================================
182!|| i10forcf3 ../engine/source/interfaces/int10/i10ke3.F
183!||--- called by ------------------------------------------------------
184!|| i7mainfr ../engine/source/interfaces/int07/i7ke3.F
185!||--- calls -----------------------------------------------------
186!|| i10corp3 ../engine/source/interfaces/int10/i10corp3.f
187!|| i10frf3 ../engine/source/interfaces/int10/i10keg3.f
188!||--- uses -----------------------------------------------------
189!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
190!||====================================================================
191 SUBROUTINE i10forcf3( A ,V ,MS ,X ,D ,
192 1 IPARI ,INTBUF_TAB ,NIN ,
193 2 NUM_IMP ,CAND_N ,CAND_E)
194C-----------------------------------------------
195C M o d u l e s
196C-----------------------------------------------
197 USE intbufdef_mod
198C-----------------------------------------------
199C I m p l i c i t T y p e s
200C-----------------------------------------------
201#include "implicit_f.inc"
202C-----------------------------------------------
203C G l o b a l P a r a m e t e r s
204C-----------------------------------------------
205#include "mvsiz_p.inc"
206C-----------------------------------------------
207C C o m m o n B l o c k s
208C-----------------------------------------------
209#include "com08_c.inc"
210#include "param_c.inc"
211#include "impl2_c.inc"
212C-----------------------------------------------
213C D u m m y A r g u m e n t s
214C-----------------------------------------------
215 INTEGER IPARI(*)
216 INTEGER NUM_IMP,CAND_N(*),CAND_E(*),NIN
217C REAL
218 my_real
219 . A(3,*), MS(*), V(3,*),D(3,*),X(*)
220
221 TYPE(intbuf_struct_) INTBUF_TAB
222C-----------------------------------------------
223C L o c a l V a r i a b l e s
224C-----------------------------------------------
225 INTEGER I, I_STOK, JLT_NEW, JLT , NFT,
226 . INACTI, NSN,NTY,L
227 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ),
228 . IX4(MVSIZ),NSVG(MVSIZ)
229C REAL
230 my_real
231 . startt, fric, stopt
232C-----------------------------------------------
233C REAL
234 my_real
235 . vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),
236 . dxi(mvsiz),dyi(mvsiz),dzi(mvsiz),
237 . h1(mvsiz),h2(mvsiz),h3(mvsiz),h4(mvsiz),
238 . msi(mvsiz),stif(mvsiz),
239 . n1(mvsiz),n2(mvsiz),n3(mvsiz),
240 . nt1(mvsiz),nt2(mvsiz),nt3(mvsiz)
241C----------------------------------------------
242C
243 nsn =ipari(5)
244 nty =ipari(7)
245 startt=intbuf_tab%VARIABLES(3)
246 stopt =intbuf_tab%VARIABLES(11)
247 IF(startt>tt) RETURN
248 IF(tt>stopt) RETURN
249 fric = one
250C
251C
252 i_stok = num_imp
253 l = 0
254C
255 DO nft = 0 , i_stok - 1 , nvsiz
256 jlt = min( nvsiz, i_stok - nft )
257 jlt_new=0
258 CALL i10corp3(jlt ,x ,intbuf_tab%IRECTM,cand_e(nft+1) ,
259 1 cand_n(nft+1),stif ,h1 ,h2 ,
260 2 h3 ,h4 ,n1 ,n2 ,n3 ,
261 3 nt1 ,nt2 ,nt3 ,ix1 ,ix2 ,
262 4 ix3 ,ix4 ,nsvg ,vxi ,vyi ,
263 5 vzi ,msi ,dxi ,dyi ,dzi ,
264 6 nsn ,nin ,jlt_new ,l )
265 l = l +jlt_new
266 jlt=jlt_new
267 CALL i10frf3(jlt ,a ,v ,ms ,fric ,
268 1 n1 ,n2 ,n3 ,nt1 ,nt2 ,
269 2 nt3 ,h1 ,h2 ,h3 ,h4 ,
270 3 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
271 4 vxi ,vyi ,vzi ,msi ,dxi ,
272 5 dyi ,dzi ,stif ,nin ,d ,
273 6 sk_int )
274 ENDDO
275C
276 RETURN
277 END
278!||====================================================================
279!|| i10fku3 ../engine/source/interfaces/int10/i10ke3.F
280!||--- called by ------------------------------------------------------
281!|| int_fku3 ../engine/source/implicit/imp_int_k.F
282!||--- calls -----------------------------------------------------
283!|| i10kfor3 ../engine/source/interfaces/int10/i10keg3.F
284!|| i7cork3 ../engine/source/interfaces/int07/i7cork3.F
285!|| i7corkp3 ../engine/source/interfaces/int07/i7cork3.F
286!|| i7dstk3 ../engine/source/interfaces/int07/i7dstk3.F
287!||--- uses -----------------------------------------------------
288!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
289!||====================================================================
290 SUBROUTINE i10fku3(A ,V ,MS ,D ,
291 1 IPARI ,INTBUF_TAB ,X ,NIN ,
292 2 NUM_IMP,CAND_N,CAND_E ,INDEX2,IUPD )
293C-----------------------------------------------
294C M o d u l e s
295C-----------------------------------------------
296 USE intbufdef_mod
297C-----------------------------------------------
298C I m p l i c i t T y p e s
299C-----------------------------------------------
300#include "implicit_f.inc"
301C-----------------------------------------------
302C G l o b a l P a r a m e t e r s
303C-----------------------------------------------
304#include "mvsiz_p.inc"
305C-----------------------------------------------
306C C o m m o n B l o c k s
307C-----------------------------------------------
308#include "com08_c.inc"
309#include "param_c.inc"
310#include "impl2_c.inc"
311C-----------------------------------------------
312C D u m m y A r g u m e n t s
313C-----------------------------------------------
314 INTEGER IPARI(*), INDEX2(*)
315 INTEGER NUM_IMP,CAND_N(*),CAND_E(*),NIN,IUPD
316C REAL
317 my_real
318 . MS(*), V(3,*),X(*),A(3,*),D(3,*)
319
320 TYPE(INTBUF_STRUCT_) INTBUF_TAB
321C-----------------------------------------------
322C L o c a l V a r i a b l e s
323C-----------------------------------------------
324 INTEGER I, I_STOK, JLT_NEW, JLT , NFT, IVIS2,
325 . ibc, noint, nseg, isecin, ibag,
326 . igap, itied, ifq, mfrot, igsti,idum
327 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
328 . nsvg(mvsiz), i3n
329C REAL
330 my_real
331 . startt, fric, gap, stopt,gapmin,
332 . kmin, kmax, gapmax
333C-----------------------------------------------
334C REAL
335 my_real
336 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
337 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
338 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
339 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
340 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
341 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
342 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
343 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
344 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
345 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
346 . n1(mvsiz), n2(mvsiz), n3(mvsiz), off(mvsiz),
347 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),
348 . dxi(mvsiz),dyi(mvsiz), dzi(mvsiz),
349 . msi(mvsiz)
350C-----------------------------------------------
351 INTEGER :: NTY,NSN
352 IF(NUM_IMP==0) return
353C
354 nsn =ipari(5)
355 nty =ipari(7)
356 startt=intbuf_tab%VARIABLES(3)
357 stopt =intbuf_tab%VARIABLES(11)
358 IF(startt>tt) RETURN
359 IF(tt>stopt) RETURN
360 igap =ipari(21)
361 itied =nint(intbuf_tab%VARIABLES(1))
362 gap =intbuf_tab%VARIABLES(2)
363 gapmin=intbuf_tab%VARIABLES(13)
364 igsti=ipari(34)
365 gapmax=intbuf_tab%VARIABLES(16)
366 kmin =intbuf_tab%VARIABLES(17)
367 kmax =intbuf_tab%VARIABLES(18)
368C
369 i_stok = num_imp
370C
371 DO nft = 0 , i_stok - 1 , nvsiz
372 jlt = min( nvsiz, i_stok - nft )
373 CALL i7cork3(jlt ,x,intbuf_tab%IRECTM,intbuf_tab%NSV,
374 1 cand_e(nft+1) ,cand_n(nft+1) ,intbuf_tab%STFM,
375 2 intbuf_tab%STFNS,x1 ,x2 ,
376 2 x3 ,x4 ,y1 ,y2 ,y3 ,
377 3 y4 ,z1 ,z2 ,z3 ,z4 ,
378 4 xi ,yi ,zi ,stif ,ix1 ,
379 5 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
380 6 gapmin ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,gapv,
381 7 ms ,vxi ,vyi ,vzi ,msi ,
382 8 v ,igsti ,kmin ,kmax ,gapmax,
383 9 gapmin ,nin ,nty ,nsn )
384 CALL i7corkp3(
385 1 jlt ,xi ,yi ,zi ,d ,
386 2 dxi ,dyi ,dzi ,nsvg ,nin ,
387 3 iupd )
388 CALL i7dstk3(
389 1 jlt ,cand_n(nft+1) ,cand_e(nft+1) ,
390 2 x1 ,x2 ,x3 ,x4 ,y1 ,
391 3 y2 ,y3 ,y4 ,z1 ,z2 ,
392 4 z3 ,z4 ,xi ,yi ,zi ,
393 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
394 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
395 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
396 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
397 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
398 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
399 b idum ,gapv ,itied ,intbuf_tab%CAND_F ,
400 c index2(nft+1) )
401 CALL i10kfor3(jlt ,a ,v ,ms ,intbuf_tab%CAND_F,
402 1 stif ,itied ,x1 ,x2 ,x3 ,
403 2 x4 ,y1 ,y2 ,y3 ,y4 ,
404 3 z1 ,z2 ,z3 ,z4 ,nsvg ,
405 4 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
406 5 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
407 6 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
408 7 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
409 8 p1 ,p2 ,p3 ,p4 ,nin ,
410 9 ix1 ,ix2 ,ix3 ,ix4 ,gapv ,
411 a index2(nft+1),vxi ,vyi ,vzi ,msi ,
412 b cand_n(nft+1),cand_e(nft+1) ,xi ,yi ,
413 c zi ,dxi ,dyi ,dzi ,d ,
414 d sk_int )
415 ENDDO
416C
417 RETURN
418 END
419!||====================================================================
420!|| imp_i10mainf ../engine/source/interfaces/int10/i10ke3.F
421!||--- called by ------------------------------------------------------
422!|| imp_tripi ../engine/source/implicit/imp_int_k.F
423!||--- calls -----------------------------------------------------
424!|| i7cdcor3 ../engine/source/interfaces/int07/i7cdcor3.F
425!|| i7cork3 ../engine/source/interfaces/int07/i7cork3.F
426!|| i7dstk3 ../engine/source/interfaces/int07/i7dstk3.f
427!|| i7dstr3 ../engine/source/interfaces/int07/i7dstk3.F
428!||--- uses -----------------------------------------------------
429!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
430!||====================================================================
431 SUBROUTINE imp_i10mainf(
432 1 IPARI ,INTBUF_TAB,X ,
433 2 V ,MS ,NIN ,LINDMAX ,
434 5 JTASK ,NUM_IMP ,NS_IMP ,NE_IMP ,IND_IMP)
435C-----------------------------------------------
436C M o d u l e s
437C-----------------------------------------------
438 USE intbufdef_mod
439C-----------------------------------------------
440C I m p l i c i t T y p e s
441C-----------------------------------------------
442#include "implicit_f.inc"
443C-----------------------------------------------
444C G l o b a l P a r a m e t e r s
445C-----------------------------------------------
446#include "mvsiz_p.inc"
447C-----------------------------------------------
448C C o m m o n B l o c k s
449C-----------------------------------------------
450#include "com08_c.inc"
451#include "param_c.inc"
452#include "task_c.inc"
453C-----------------------------------------------
454C D u m m y A r g u m e n t s
455C-----------------------------------------------
456 INTEGER IPARI(*), NIN,JTASK,LINDMAX
457 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*)
458C REAL
459 my_real
460 . MS(*), V(3,*),X(*)
461
462 TYPE(INTBUF_STRUCT_) INTBUF_TAB
463C-----------------------------------------------
464C L o c a l V a r i a b l e s
465C-----------------------------------------------
466 INTEGER I, I_STOK, JLT_NEW, JLT , NFT, IVIS2,
467 . ibc, noint, nseg, isecin, ibag,
468 . igap, itied, ifq, mfrot, igsti,idum,
469 . nb_loc,i_stok_loc,debut
470 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
471 . NSVG(MVSIZ), CN_LOC(MVSIZ),CE_LOC(MVSIZ),
472 . CAND_N_N(MVSIZ),CAND_E_N(MVSIZ),INDEX2(LINDMAX),
473 . i3n ,lrem
474C REAL
475 my_real
476 . startt, fric, gap, stopt,gapmin,
477 . kmin, kmax, gapmax
478C-----------------------------------------------
479C REAL
480 my_real
481 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
482 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
483 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
484 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
485 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
486 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
487 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
488 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
489 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
490 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
491 . n1(mvsiz), n2(mvsiz), n3(mvsiz), off(mvsiz),
492 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),
493 . msi(mvsiz),ki11(9,mvsiz),kj11(9,mvsiz),
494 . kk11(9,mvsiz),kl11(9,mvsiz),ki12(9,mvsiz),
495 . kj12(9,mvsiz),kk12(9,mvsiz),kl12(9,mvsiz)
496C-----------------------------------------------
497 INTEGER :: NTY,NSN
498C
499 NSN =ipari(5)
500 nty =ipari(7)
501 startt=intbuf_tab%VARIABLES(3)
502 stopt =intbuf_tab%VARIABLES(11)
503 IF(startt>tt) RETURN
504 IF(tt>stopt) RETURN
505 igap =ipari(21)
506 itied =nint(intbuf_tab%VARIABLES(1))
507 gap =intbuf_tab%VARIABLES(2)
508 gapmin=intbuf_tab%VARIABLES(13)
509 igsti=ipari(34)
510 gapmax=intbuf_tab%VARIABLES(16)
511 kmin =intbuf_tab%VARIABLES(17)
512 kmax =intbuf_tab%VARIABLES(18)
513C
514 i_stok = intbuf_tab%I_STOK(1)
515 nb_loc = i_stok / nthread
516 IF (jtask==nthread) THEN
517 i_stok_loc = i_stok-nb_loc*(nthread-1)
518 ELSE
519 i_stok_loc = nb_loc
520 ENDIF
521 debut = (jtask-1)*nb_loc
522 i_stok = 0
523C
524 num_imp = 0
525C
526C recalcul du istok
527C
528 DO i = debut+1, debut+i_stok_loc
529 IF(intbuf_tab%CAND_N(i)<0) THEN
530 i_stok = i_stok + 1
531 index2(i_stok) = i
532C inbuf == cand_n
533 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
534 ELSEIF(itied/=0.AND.intbuf_tab%CAND_F(6*(i-1)+1)/=0.) THEN
535 i_stok = i_stok + 1
536 index2(i_stok) = i
537C INBUF(KD(15)+I-1) = INBUF(KD(15)+I-1)
538 ELSE
539 intbuf_tab%CAND_F(6*(i-1)+1)= zero
540 intbuf_tab%CAND_F(6*(i-1)+2) = zero
541 intbuf_tab%CAND_F(6*(i-1)+3) = zero
542 ENDIF
543 ENDDO
544C
545 DO nft = 0 , i_stok - 1 , nvsiz
546 jlt = min( nvsiz, i_stok - nft )
547C preparation candidats retenus
548 CALL i7cdcor3(
549 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,
550 2 cand_e_n,cand_n_n)
551 CALL i7cork3(jlt ,x,intbuf_tab%IRECTM,intbuf_tab%NSV,
552 1 cand_e_n ,cand_n_n ,intbuf_tab%STFM,
553 2 intbuf_tab%STFNS,x1 ,x2 ,
554 2 x3 ,x4 ,y1 ,y2 ,y3 ,
555 3 y4 ,z1 ,z2 ,z3 ,z4 ,
556 4 xi ,yi ,zi ,stif ,ix1 ,
557 5 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
558 6 gapmin ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,gapv,
559 7 ms ,vxi ,vyi ,vzi ,msi ,
560 8 v ,igsti ,kmin ,kmax ,gapmax,
561 9 gapmin ,nin ,nty ,nsn )
562 CALL i7dstk3(
563 1 jlt ,cand_n_n,cand_e_n ,
564 2 x1 ,x2 ,x3 ,x4 ,y1 ,
565 3 y2 ,y3 ,y4 ,z1 ,z2 ,
566 4 z3 ,z4 ,xi ,yi ,zi ,
567 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
568 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
569 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
570 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
571 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
572 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
573 b i3n ,gapv ,itied ,intbuf_tab%CAND_F ,
574 c index2(nft+1))
575 CALL i7dstr3(
576 1 jlt ,cand_n_n,cand_e_n,cn_loc ,ce_loc ,
577 2 p1 ,p2 ,p3 ,p4 ,stif ,
578 3 gapv ,itied ,intbuf_tab%CAND_F,index2(nft+1),
579 4 jlt_new)
580C
581 DO i = 1 ,jlt_new
582 ns_imp(i+num_imp)=cn_loc(i)
583 ne_imp(i+num_imp)=ce_loc(i)
584 ind_imp(i+num_imp)=index2(i+nft)
585 ENDDO
586 num_imp=num_imp+jlt_new
587 ENDDO
588C
589 RETURN
590 END
subroutine ass_spmd(nd, ns, n1, n2, n3, n4, nel, iddl, k_diag, k_lt, iadk, jdik, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off, nin)
Definition assem_int.F:98
subroutine assem_int(nd, ns, n1, n2, n3, n4, nel, iddl, k_diag, k_lt, iadk, jdik, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off)
Definition assem_int.F:39
subroutine i10corp3(jlt, x, irect, cand_e, cand_n, stif, h1, h2, h3, h4, n1, n2, n3, nt1, nt2, nt3, ix1, ix2, ix3, ix4, nsvg, vxi, vyi, vzi, msi, dxi, dyi, dzi, nsn, nin, jlt_new, lrem)
Definition i10corp3.F:38
subroutine i10forcf3(a, v, ms, x, d, ipari, intbuf_tab, nin, num_imp, cand_n, cand_e)
Definition i10ke3.F:194
subroutine imp_i10mainf(ipari, intbuf_tab, x, v, ms, nin, lindmax, jtask, num_imp, ns_imp, ne_imp, ind_imp)
Definition i10ke3.F:435
subroutine i10fku3(a, v, ms, d, ipari, intbuf_tab, x, nin, num_imp, cand_n, cand_e, index2, iupd)
Definition i10ke3.F:293
subroutine i10ke3(a, v, ms, ipari, intbuf_tab, x, nin, num_imp, cand_n, cand_e, index2, iddl, k_diag, k_lt, iadk, jdik, gap_imp, lrem)
Definition i10ke3.F:41
subroutine i10kfor3(jlt, a, v, ms, cand_f, stif, itied, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, nsvg, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, nin, ix1, ix2, ix3, ix4, gapv, index, vxi, vyi, vzi, msi, cn_loc, ce_loc, xi, yi, zi, dxi, dyi, dzi, d, scalk)
Definition i10keg3.F:620
subroutine i10keg3(jlt, a, v, ms, fric, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, nin, ix1, ix2, ix3, ix4, nsvg, gapv, itied, cand_f, index, stif, vxi, vyi, vzi, msi, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off, scalk, lrem)
Definition i10keg3.F:44
subroutine i10frf3(jlt, a, v, ms, fric, n1, n2, n3, t1x, t1y, t1z, h1, h2, h3, h4, ix1, ix2, ix3, ix4, index, vxi, vyi, vzi, msi, dxi, dyi, dzi, stif, nin, d, scalk)
Definition i10keg3.F:464
subroutine i7cdcor3(jlt, index, cand_e, cand_n, cand_e_n, cand_n_n)
Definition i7cdcor3.F:38
subroutine i7corkp3(jlt, xi, yi, zi, d, dxi, dyi, dzi, nsvg, nin, iupd)
Definition i7cork3.F:376
subroutine i7cork3(jlt, x, irect, nsv, cand_e, cand_n, stf, stfn, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, ix1, ix2, ix3, ix4, nsvg, igap, gap, gap_s, gap_m, gapv, ms, vxi, vyi, vzi, msi, v, igsti, kmin, kmax, gapmax, gapmin, nin, ity, nsn)
Definition i7cork3.F:45
subroutine i7dstk3(jlt, cand_n, cand_e, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, ix1, ix2, ix3, ix4, nsvg, stif, i3n, gapv, inacti, cand_p, index)
Definition i7dstk3.F:45
subroutine i7dstr3(jlt, cand_n, cand_e, cn_loc, ce_loc, p1, p2, p3, p4, stif, gapv, inacti, cand_p, index, jlt_new)
Definition i7dstk3.F:355
#define min(a, b)
Definition macros.h:20