OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i10mainf.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "param_c.inc"
#include "warn_c.inc"
#include "parit_c.inc"
#include "task_c.inc"
#include "impl1_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i10mainf (ipari, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, lindmax, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, nstrf, secfcum, viscn, nin, fsavsub, num_imp, ns_imp, ne_imp, ind_imp, fncont, ftcont, mskyi_sms, iskyi_sms, nodnx_sms, icontact, intbuf_tab, fbsav6, isensint, dimfb, h3d_data, nodadt_therm)

Function/Subroutine Documentation

◆ i10mainf()

subroutine i10mainf ( integer, dimension(*) ipari,
x,
a,
integer, dimension(*) icodt,
fsav,
v,
ms,
dt2t,
integer neltst,
integer ityptst,
integer, dimension(*) itab,
stifn,
fskyi,
integer, dimension(*) isky,
fcont,
integer lindmax,
integer jtask,
integer nb_jlt,
integer nb_jlt_new,
integer nb_stok_n,
integer niskyfi,
integer, dimension(*) nstrf,
secfcum,
viscn,
integer nin,
fsavsub,
integer num_imp,
integer, dimension(*) ns_imp,
integer, dimension(*) ne_imp,
integer, dimension(*) ind_imp,
fncont,
ftcont,
mskyi_sms,
integer, dimension(*) iskyi_sms,
integer, dimension(*) nodnx_sms,
integer, dimension(*) icontact,
type(intbuf_struct_) intbuf_tab,
double precision, dimension(12,6,dimfb) fbsav6,
integer, dimension(*) isensint,
integer dimfb,
type(h3d_database) h3d_data,
integer, intent(in) nodadt_therm )

Definition at line 40 of file i10mainf.F.

50C============================================================================
51C cette routine est appelee par : INTFOP2(/interf/intfop2.F)
52C----------------------------------------------------------------------------
53C cette routine appelle : I7CDCOR3(int7/i7cdcor3.F)
54C I7COR3(int7/i7cor3.F)
55C I10DST3(int10/i10dst3.F)
56C I10FOR3(int10/i10for3.F)
57C============================================================================
58C-----------------------------------------------
59C M o d u l e s
60C-----------------------------------------------
61 USE intbufdef_mod
62 USE h3d_mod
63 USE message_mod
64C-----------------------------------------------
65C I m p l i c i t T y p e s
66C-----------------------------------------------
67#include "implicit_f.inc"
68C-----------------------------------------------
69C G l o b a l P a r a m e t e r s
70C-----------------------------------------------
71#include "mvsiz_p.inc"
72C-----------------------------------------------
73C C o m m o n B l o c k s
74C-----------------------------------------------
75#include "com04_c.inc"
76#include "com08_c.inc"
77#include "param_c.inc"
78#include "warn_c.inc"
79#include "parit_c.inc"
80#include "task_c.inc"
81#include "impl1_c.inc"
82C-----------------------------------------------
83C D u m m y A r g u m e n t s
84C-----------------------------------------------
85 INTEGER NELTST,ITYPTST,NSTRF(*),
86 . NISKYFI,NIN,LINDMAX
87 INTEGER IPARI(*), ICODT(*), ITAB(*),
88 . ISKY(*), ISKYI_SMS(*), NODNX_SMS(*),
89 . ICONTACT(*), ISENSINT(*),DIMFB
90 INTEGER ,INTENT(IN) :: NODADT_THERM
91C statistique interface
92 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK
93 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*)
94C REAL
95 my_real dt2t,
96 . x(*), a(3,*), fsav(*), v(3,*),
97 . ms(*),stifn(*),fskyi(lskyi,4),fcont(*),
98 . secfcum(7,numnod,nsect),
99 . viscn(*), fsavsub(*), fncont(3,*), ftcont(3,*),
100 . mskyi_sms(*)
101
102 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
103
104 TYPE(INTBUF_STRUCT_) INTBUF_TAB
105 TYPE(H3D_DATABASE) :: H3D_DATA
106C-----------------------------------------------
107C L o c a l V a r i a b l e s
108C-----------------------------------------------
109 INTEGER IDUM,
110 . I, J, H, NOINT, ISECIN, I_STOK, NSEG,
111 . IGAP, JLT_NEW, JLT , NFT, ITIED, IGSTI, NISUB, IADM,
112 . NB_LOC,I_STOK_LOC,DEBUT, IERROR
113 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
114 . NSVG(MVSIZ), CAND_N_N(MVSIZ),CAND_E_N(MVSIZ),
115 . CN_LOC(MVSIZ),CE_LOC(MVSIZ),
116 . INDEX2(LINDMAX),IBID,SFSAVPARIT
117 INTEGER NSMS(MVSIZ)
118C REAL
119 my_real
120 . startt, gap, stopt,
121 . visc, stiglo, gapmin, kmin, kmax, gapmax,
122 . rbid
123C-----------------------------------------------
124C REAL
125 my_real
126 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
127 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
128 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
129 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
130 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
131 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
132 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
133 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
134 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
135 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
136 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
137 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
138 . gapv(mvsiz),
139 . vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz)
140
141 my_real, DIMENSION(:,:,:), ALLOCATABLE :: fsavparit
142 INTEGER :: NTY,NSN
143C
144 idum = 0
145 nsn =ipari(5)
146 nty =ipari(7)
147 noint =ipari(15)
148 igap =ipari(21)
149 isecin=ipari(28)
150 igsti =ipari(34)
151 nisub =ipari(36)
152C
153 stiglo=-intbuf_tab%STFAC(1)
154 startt=intbuf_tab%VARIABLES(3)
155 stopt =intbuf_tab%VARIABLES(11)
156 IF(startt>tt) RETURN
157 IF(tt>stopt) RETURN
158C
159 itied =nint(intbuf_tab%VARIABLES(1))
160 gap =intbuf_tab%VARIABLES(2)
161 gapmin=intbuf_tab%VARIABLES(13)
162 visc =intbuf_tab%VARIABLES(14)
163 gapmax=intbuf_tab%VARIABLES(16)
164 kmin =intbuf_tab%VARIABLES(17)
165 kmax =intbuf_tab%VARIABLES(18)
166 iadm=ipari(44)
167C
168 rbid = zero
169 ibid = 0
170 IF(nty==10)THEN
171C
172 i_stok = intbuf_tab%I_STOK(1)
173 IF (impl_s==1) THEN
174 num_imp = 0
175 visc =zero
176 ENDIF
177C cette partie est effectuee en // apres le calcul des forces des elem.
178C decoupage statique
179 nb_loc = i_stok / nthread
180 IF (jtask==nthread) THEN
181 i_stok_loc = i_stok-nb_loc*(nthread-1)
182 ELSE
183 i_stok_loc = nb_loc
184 ENDIF
185 debut = (jtask-1)*nb_loc
186 i_stok = 0
187C recalcul du istok
188 DO i = debut+1, debut+i_stok_loc
189 IF(intbuf_tab%CAND_N(i)<0) THEN
190 i_stok = i_stok + 1
191 index2(i_stok) = i
192C inbuf == cand_n
193 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
194 ELSEIF(itied/=0.AND.intbuf_tab%CAND_F(6*(i-1)+1)/=0.) THEN
195 i_stok = i_stok + 1
196 index2(i_stok) = i
197 ELSE
198C remise a 0 de cand_f de 1, 2, 3
199 intbuf_tab%CAND_F(6*(i-1)+1) = zero
200 intbuf_tab%CAND_F(6*(i-1)+2) = zero
201 intbuf_tab%CAND_F(6*(i-1)+3) = zero
202 ENDIF
203 ENDDO
204 IF (debug(3)>=1) THEN
205 nb_jlt = nb_jlt + i_stok_loc
206 nb_stok_n = nb_stok_n + i_stok
207 ENDIF
208C
209 sfsavparit = 0
210 DO i=1,nisub+1
211 IF(isensint(i)/=0) THEN
212 sfsavparit = sfsavparit + 1
213 ENDIF
214 ENDDO
215 IF (sfsavparit /= 0) THEN
216 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
217 IF(ierror/=0) THEN
218 CALL ancmsg(msgid=19,anmode=aninfo,
219 . c1='(/INTER/TYPE10)')
220 CALL arret(2)
221 ENDIF
222 DO j=1,i_stok
223 DO i=1,11
224 DO h=1,nisub+1
225 fsavparit(h,i,j) = zero
226 ENDDO
227 ENDDO
228 ENDDO
229 ELSE
230 ALLOCATE(fsavparit(0,0,0),stat=ierror)
231 IF(ierror/=0) THEN
232 CALL ancmsg(msgid=19,anmode=aninfo,
233 . c1='(/INTER/TYPE10)')
234 CALL arret(2)
235 ENDIF
236 ENDIF
237c
238 DO nft = 0 , i_stok - 1 , nvsiz
239 jlt = min( nvsiz, i_stok - nft )
240C preparation candidats retenus
241 CALL i7cdcor3(
242 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,cand_e_n,
243 2 cand_n_n)
244 CALL i7cor3(
245 1 jlt ,x ,intbuf_tab%IRECTM,intbuf_tab%NSV,cand_e_n,
246 2 cand_n_n ,intbuf_tab%STFM,intbuf_tab%STFNS,x1 ,x2 ,
247 3 x3 ,x4 ,y1 ,y2 ,y3 ,
248 4 y4 ,z1 ,z2 ,z3 ,z4 ,
249 5 xi ,yi ,zi ,stif ,ix1 ,
250 6 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
251 7 gap ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,gapv,
252 9 ms ,vxi ,vyi ,
253 a vzi ,msi ,nsn ,v ,idum ,
254 b idum ,nty ,nin ,igsti ,kmin ,
255 c kmax ,gapmax ,gapmin ,iadm ,rbid ,
256 d rbid ,rbid ,rbid ,ibid ,rbid ,
257 e rbid ,rbid ,rbid ,ibid ,rbid ,
258 f ibid ,nodnx_sms ,nsms ,rbid ,rbid ,
259 g ibid ,ibid ,ibid ,ibid ,ibid ,
260 h ibid ,ibid ,rbid ,ibid ,rbid )
261 jlt_new = 0
262 CALL i10dst3(
263 1 jlt ,cand_n_n,cand_e_n,cn_loc,ce_loc ,
264 2 x1 ,x2 ,x3 ,x4 ,y1 ,
265 3 y2 ,y3 ,y4 ,z1 ,z2 ,
266 4 z3 ,z4 ,xi ,yi ,zi ,
267 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
268 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
269 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
270 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
271 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
272 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
273 b jlt_new,gapv,intbuf_tab%CAND_F,index2(nft+1),itied,
274 c vxi ,vyi ,vzi ,msi ,nsms )
275 jlt = jlt_new
276 IF(jlt_new/=0) THEN
277 ipari(29) = 1
278 IF (debug(3)>=1)
279 . nb_jlt_new = nb_jlt_new + jlt_new
280C WRITE(6,*) 'IMPACT ==> CALL I10FOR3'
281 CALL i10for3(
282 1 jlt ,a ,ms ,v ,fsav ,
283 2 intbuf_tab%CAND_F,stifn,stif ,fskyi ,isky ,
284 3 itied ,visc ,x1 ,x2 ,x3 ,
285 4 x4 ,y1 ,y2 ,y3 ,y4 ,
286 5 z1 ,z2 ,z3 ,z4 ,nsvg ,
287 6 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
288 7 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
289 8 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
290 9 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
291 a p1 ,p2 ,p3 ,p4 ,fcont ,
292 b ix1 ,ix2 ,ix3 ,ix4 ,gapv ,
293 c index2(nft+1),niskyfi ,isecin ,nstrf ,secfcum ,
294 d noint ,viscn ,vxi ,vyi ,vzi ,
295 e msi ,nin ,nisub ,intbuf_tab%LISUB,intbuf_tab%ADDSUBS,
296 f intbuf_tab%ADDSUBM,intbuf_tab%LISUBS,intbuf_tab%LISUBM,cn_loc,ce_loc,
297 g fsavsub ,fncont ,ftcont ,mskyi_sms ,iskyi_sms ,
298 h nsms ,xi ,yi ,zi ,icontact,
299 i dt2t ,neltst ,ityptst ,jtask ,isensint,
300 j fsavparit ,nft ,h3d_data,nodadt_therm)
301 ENDIF
302 IF(impl_s==1) THEN
303 DO i = 1 ,jlt_new
304 ns_imp(i+num_imp)=cn_loc(i)
305 ne_imp(i+num_imp)=ce_loc(i)
306 ind_imp(i+num_imp)=index2(i+nft)
307 ENDDO
308 num_imp=num_imp+jlt_new
309 ENDIF
310 ENDDO
311c
312 IF (sfsavparit /= 0)THEN
313 CALL sum_6_float_sens(fsavparit, nisub+1, 11, i_stok,1,i_stok,
314 . fbsav6, 12, 6, dimfb, isensint )
315 ENDIF
316 IF (ALLOCATED(fsavparit)) DEALLOCATE (fsavparit)
317C
318 ENDIF
319C
320 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine i10dst3(jlt, cand_n, cand_e, cn_loc, ce_loc, 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, jlt_new, gapv, cand_f, index, itied, vxi, vyi, vzi, msi, nsms)
Definition i10dst3.F:41
subroutine i10for3(jlt, a, ms, v, fsav, cand_f, stifn, stif, fskyi, isky, itied, visc, 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, fcont, ix1, ix2, ix3, ix4, gapv, index, niskyfi, isecin, nstrf, secfcum, noint, viscn, vxi, vyi, vzi, msi, nin, nisub, lisub, addsubs, addsubm, lisubs, lisubm, cn_loc, ce_loc, fsavsub, fncont, ftcont, mskyi_sms, iskyi_sms, nsms, xi, yi, zi, icontact, dt2t, neltst, ityptst, jtask, isensint, fsavparit, nft, h3d_data, nodadt_therm)
Definition i10for3.F:58
subroutine i7cdcor3(jlt, index, cand_e, cand_n, cand_e_n, cand_n_n)
Definition i7cdcor3.F:38
#define min(a, b)
Definition macros.h:20
subroutine sum_6_float_sens(f, a, b, c, jft, jlt, f6, d, e, g, isensint)
Definition parit.F:540
subroutine i7cor3(x, irect, nsv, cand_e, cand_n, stf, stfn, gapv, igap, gap, gap_s, gap_m, istf, gapmin, gapmax, gap_s_l, gap_m_l, drad, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, dgapload, last)
Definition i7cor3.F:43
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