OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
inint3_thkvar.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com04_c.inc"
#include "param_c.inc"
#include "scr03_c.inc"
#include "units_c.inc"
#include "vect07_c.inc"
#include "scr17_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine inint3_thkvar (intbuf_tab, inscr, x, ixs, ixc, ixtg, pm, geo, ipari, numint, itab, mwa, rwa, iwrn, ikine, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, thksh4_var, thksh3_var, thknod, intstamp, skew, ms, in, v, vr, rby, npby, lpby, i_mem, resort, iparts, ipartc, ipartg, thk_part, id, titr, nom_opt)

Function/Subroutine Documentation

◆ inint3_thkvar()

subroutine inint3_thkvar ( type(intbuf_struct_) intbuf_tab,
integer, dimension(*) inscr,
x,
integer, dimension(nixs,*) ixs,
integer, dimension(nixc,*) ixc,
integer, dimension(nixtg,*) ixtg,
pm,
geo,
integer, dimension(*) ipari,
integer numint,
integer, dimension(*) itab,
integer, dimension(*) mwa,
rwa,
integer iwrn,
integer, dimension(*) ikine,
integer, dimension(*) knod2els,
integer, dimension(*) knod2elc,
integer, dimension(*) knod2eltg,
integer, dimension(*) nod2els,
integer, dimension(*) nod2elc,
integer, dimension(*) nod2eltg,
thksh4_var,
thksh3_var,
thknod,
type(intstamp_data) intstamp,
skew,
ms,
in,
v,
vr,
rby,
integer, dimension(nnpby,*) npby,
integer, dimension(*) lpby,
integer i_mem,
integer resort,
integer, dimension(*) iparts,
integer, dimension(*) ipartc,
integer, dimension(*) ipartg,
thk_part,
integer id,
character(len=nchartitle) titr,
integer, dimension(lnopt1,*) nom_opt )

Definition at line 41 of file inint3_thkvar.F.

52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE message_mod
56 USE intstamp_mod
57 USE intbufdef_mod
59 use element_mod , only :nixs,nixc,nixtg
60C-----------------------------------------------
61C I m p l i c i t T y p e s
62C-----------------------------------------------
63#include "implicit_f.inc"
64C-----------------------------------------------
65C G l o b a l P a r a m e t e r s
66C-----------------------------------------------
67#include "mvsiz_p.inc"
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71#include "com04_c.inc"
72#include "param_c.inc"
73#include "scr03_c.inc"
74#include "units_c.inc"
75#include "vect07_c.inc"
76#include "scr17_c.inc"
77C-----------------------------------------------
78C D u m m y A r g u m e n t s
79C-----------------------------------------------
80 INTEGER NUMINT, IWRN, I_MEM, RESORT
81 INTEGER INSCR(*), IXS(NIXS,*), IXC(NIXC,*),
82 . IXTG(NIXTG,*), IPARI(*), ITAB(*), MWA(*), IKINE(*),
83 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*),
84 . NOD2ELS(*), NOD2ELC(*), NOD2ELTG(*),
85 . NPBY(NNPBY,*), LPBY(*), IPARTS(*), IPARTC(*), IPARTG(*)
86 TYPE(INTSTAMP_DATA) INTSTAMP
87 INTEGER NOM_OPT(LNOPT1,*)
89 . x(3,*), pm(*), geo(*),rwa(6,*),
90 . thksh4_var(*), thksh3_var(*), thknod(*),
91 . skew(lskew,*), ms(*), in(*), v(3,*), vr(3,*), rby(nrby,*),
92 . thk_part(*)
93 INTEGER ID
94 CHARACTER(LEN=NCHARTITLE) :: TITR
95 TYPE(INTBUF_STRUCT_) :: INTBUF_TAB
96C-----------------------------------------------
97C L o c a l V a r i a b l e s
98C-----------------------------------------------
99 INTEGER NRTS, NRTM, NSN, NMN, NTY, NST, MST, NOINT,
100 . I, I_STOK,IRS,IRM,
101 . NSEG, NGROUS, NG, INACTI,IWPENE,
102 . JLT_NEW,IGAP,MULTIMP,IADM,INTTH,
103 . ISU1, ISU2,
104 . ISK, IROT, J, MSR, IRB, K, NSL, N
105 INTEGER, DIMENSION(MVSIZ) ::PROV_N,PROV_E
106 INTEGER, DIMENSION(MVSIZ) :: IX1,IX2,IX3,IX4,NSVG
107 my_real, DIMENSION(MVSIZ) :: x1,x2,x3,x4
108 my_real, DIMENSION(MVSIZ) :: y1,y2,y3,y4
109 my_real, DIMENSION(MVSIZ) :: z1,z2,z3,z4
110 my_real, DIMENSION(MVSIZ) :: xi,yi,zi
111 my_real, DIMENSION(MVSIZ) :: x0,y0,z0,stif
112 my_real, DIMENSION(MVSIZ) :: n11,n21,n31,pene1
113 my_real, DIMENSION(MVSIZ) :: nx1,ny1,nz1
114 my_real, DIMENSION(MVSIZ) :: nx2,ny2,nz2
115 my_real, DIMENSION(MVSIZ) :: nx3,ny3,nz3
116 my_real, DIMENSION(MVSIZ) :: nx4,ny4,nz4
117 my_real, DIMENSION(MVSIZ) :: p1,p2,p3,p4
118 my_real, DIMENSION(MVSIZ) :: lb1,lb2,lb3,lb4
119 my_real, DIMENSION(MVSIZ) :: lc1,lc2,lc3,lc4
120 INTEGER, DIMENSION(:),ALLOCATABLE :: TAGNOD
121 my_real, DIMENSION(:) ,POINTER :: gap_s0
122 my_real,TARGET, DIMENSION(1):: gaps0_bid
123C REAL
124 my_real
125 . maxbox,minbox
126 my_real
127 . gapv(mvsiz), pene(mvsiz),gap0
128 CHARACTER MESS*40
129 DATA mess/'/INTER/TYPE21 INITIALIZATIONS '/
130C-----------------------------------------------
131C
132 ALLOCATE(tagnod(numnod))
133 iwpene = 0
134 nrts =ipari(3)
135 nrtm =ipari(4)
136 nsn =ipari(5)
137 nmn =ipari(6)
138 nty =ipari(7)
139 nst =ipari(8)
140 mst =ipari(9)
141 noint =ipari(15)
142 igap =ipari(21)
143 inacti= ipari(22)
144 multimp= ipari(23)
145 irm= ipari(24)
146 irs= ipari(25)
147 isu1=ipari(45)
148 isu2=ipari(46)
149 iadm=ipari(44)
150 intth=ipari(47)
151C
152C
153 IF (resort == 0)THEN
154 WRITE(iout,2001)noint,nty
155 END IF
156C
157C=======================================================================
158 IF(nty==21) THEN
159C=======================================================================
160C
161C CALCULATION OF THE GAP, after INITIA (reading of thicknesses).
162C
163 IF(igap == 2) THEN
164 gap0 = intbuf_tab%VARIABLES(2)
165 CALL i21gap3(
166 1 x ,intbuf_tab%IRECTS,intbuf_tab%IRECTM,nrts,nrtm,
167 2 geo ,pm ,ixs ,ixc ,ixtg ,
168 3 -numint ,nty ,noint ,nsn ,intbuf_tab%NSV,
169 4 gap0,igap ,intbuf_tab%GAP_S,intbuf_tab%VARIABLES(13),
170 . intbuf_tab%VARIABLES(6),
171 5 intbuf_tab%VARIABLES(16),intbuf_tab%IELES,intbuf_tab%STF,
172 . nmn ,intbuf_tab%MSR ,
173 6 knod2els ,knod2elc ,knod2eltg ,nod2els ,nod2elc ,
174 7 nod2eltg ,thknod ,
175 8 ikine ,itab ,inacti ,intbuf_tab%VARIABLES(19),
176 . intbuf_tab%STFNS,
177 9 intbuf_tab%VARIABLES(23),intbuf_tab%GAP_S(1+nsn:2*nsn),intbuf_tab%AREAS,
178 . intbuf_tab%XM0,intbuf_tab%VARIABLES(27),
179 a intbuf_tab%VARIABLES(28),intbuf_tab%VARIABLES(29),intth ,intbuf_tab%VARIABLES(32),
180 . iparts ,
181 b ipartc, ipartg, thk_part,intbuf_tab%THKNOD0 ,id,titr ,
182 c intbuf_tab%VARIABLES(46),resort )
183
184 ELSE
185 gap_s0 => gaps0_bid
186 gap0 = intbuf_tab%VARIABLES(2)
187 CALL i21gap3(
188 1 x ,intbuf_tab%IRECTS,intbuf_tab%IRECTM,nrts,nrtm,
189 2 geo ,pm ,ixs ,ixc ,ixtg ,
190 3 -numint ,nty ,noint ,nsn ,intbuf_tab%NSV,
191 4 gap0,igap ,intbuf_tab%GAP_S,intbuf_tab%VARIABLES(13),
192 . intbuf_tab%VARIABLES(6),
193 5 intbuf_tab%VARIABLES(16),intbuf_tab%IELES,intbuf_tab%STF,
194 . nmn ,intbuf_tab%MSR ,
195 6 knod2els ,knod2elc ,knod2eltg ,nod2els ,nod2elc ,
196 7 nod2eltg ,thknod ,
197 8 ikine ,itab ,inacti ,intbuf_tab%VARIABLES(19),
198 . intbuf_tab%STFNS,
199 9 intbuf_tab%VARIABLES(23),gap_s0,intbuf_tab%AREAS,
200 . intbuf_tab%XM0,intbuf_tab%VARIABLES(27),
201 a intbuf_tab%VARIABLES(28),intbuf_tab%VARIABLES(29),intth ,intbuf_tab%VARIABLES(32),
202 . iparts ,
203 b ipartc, ipartg, thk_part,intbuf_tab%THKNOD0 ,id,titr ,
204 c intbuf_tab%VARIABLES(46),resort )
205
206 ENDIF
207C
208C Initializations (normal pre-celucculus, etc.)
209C
210 CALL i21norm3(
211 1 x ,intbuf_tab%IRECTM,nrtm ,nmn ,intbuf_tab%MSR ,
212 2 -numint ,nty ,noint ,intbuf_tab%NOD_NORMAL,intbuf_tab%XM0)
213C
214 IF(iadm/=0)THEN
215 CALL i21rcurv(
216 1 nrtm ,intbuf_tab%XM0,intbuf_tab%NOD_NORMAL,intbuf_tab%IRECTM,intbuf_tab%RCURV,
217 2 intbuf_tab%ANGLM)
218 END IF
219C
220 CALL i21reset(nsn, intbuf_tab%IRTLM, intbuf_tab%CSTS)
221C
222C STILL NEED TO DO A BUCKET SORT IN THE STARTER
223C
224 maxbox = intbuf_tab%VARIABLES(9)
225 minbox = intbuf_tab%VARIABLES(12)
226 CALL i21buc1(
227 1 x ,intbuf_tab%IRECTM ,intbuf_tab%NSV,intbuf_tab%VARIABLES(4),nseg ,
228 2 nmn ,nrtm ,mwa ,nsn ,intbuf_tab%CAND_E ,
229 3 intbuf_tab%CAND_N ,gap0,rwa ,noint,i_stok ,
230 4 intbuf_tab%VARIABLES(5),intbuf_tab%VARIABLES(8),maxbox ,minbox ,intbuf_tab%MSR,
231 5 intbuf_tab%STF ,multimp ,itab ,intbuf_tab%GAP_S ,igap ,
232 6 intbuf_tab%VARIABLES(13),intbuf_tab%VARIABLES(16) ,inacti ,nrts ,intbuf_tab%IRECTS,
233 7 intbuf_tab%XM0 ,intbuf_tab%VARIABLES(23),intbuf_tab%VARIABLES(22),
234 8 intbuf_tab%VARIABLES(32),id,titr,i_mem,
235 9 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
236 1 x1 ,x2 ,x3 ,x4 ,y1 ,
237 2 y2 ,y3 ,y4 ,z1 ,z2 ,
238 3 z3 ,z4 ,xi ,yi ,zi ,
239 4 x0 ,y0 ,z0 ,stif ,nx1 ,
240 5 ny1 ,nz1 ,nx2 ,ny2 ,nz2 ,
241 6 nx3 ,ny3 ,nz3 ,nx4 ,ny4 ,
242 7 nz4 ,p1 ,p2 ,p3 ,p4 ,
243 8 lb1 ,lb2 ,lb3 ,lb4 ,lc1 ,
244 9 lc2 ,lc3 ,lc4 ,pene1 ,prov_n ,
245 1 prov_e,n11 ,n21 ,n31 ,intbuf_tab%VARIABLES(46))
246 IF (i_mem == 2 ) resort = resort + 1
247 IF (i_mem == 2 ) RETURN
248 intbuf_tab%VARIABLES(9) = maxbox
249 intbuf_tab%VARIABLES(12) = minbox
250 intbuf_tab%VARIABLES(2) = gap0
251C
252C THEN CALCULATE THE INITIAL PENETRATIONS WITH ONE I21DST3
253C
254 ngrous=1+(i_stok-1)/nvsiz
255C
256 DO 700 ng=1,ngrous
257
258 IF(ipri>=1) WRITE(iout,2007)
259 nft = (ng-1) * nvsiz
260 lft = 1
261 llt = min0( nvsiz, i_stok - nft )
262 CALL i21dst3(
263 1 llt ,intbuf_tab%CAND_N(1+nft),intbuf_tab%CAND_E(1+nft),intbuf_tab%IRECTM,intbuf_tab%NSV,
264 2 intbuf_tab%GAP_S,x ,intbuf_tab%IRTLM,intbuf_tab%CSTS,
265 . intbuf_tab%VARIABLES(23),
266 3 intbuf_tab%NOD_NORMAL,intbuf_tab%XM0,pene,intbuf_tab%PENIS,intbuf_tab%IFPEN,
267 4 igap ,intbuf_tab%VARIABLES(2), intbuf_tab%VARIABLES(16), intbuf_tab%VARIABLES(13) ,
268 . intbuf_tab%VARIABLES(32),
269 5 intbuf_tab%VARIABLES(46))
270 700 CONTINUE
271C
272 CALL i21pwr3(
273 . itab ,inacti,intbuf_tab%CAND_E,intbuf_tab%CAND_N,intbuf_tab%STFNS,
274 1 x ,i_stok,intbuf_tab%NSV,iwpene ,intbuf_tab%PENIS,
275 2 noint ,nty ,intbuf_tab%GAP_S,intbuf_tab%MSR,intbuf_tab%IRTLM,
276 3 intbuf_tab%IRECTM ,intbuf_tab%XM0,intbuf_tab%VARIABLES(13),intbuf_tab%VARIABLES(16),
277 . intbuf_tab%VARIABLES(23),
278 4 nsn ,mwa ,intbuf_tab%VARIABLES(32),id,titr)
279
280 IF(iwpene==0.AND.(inacti==5.OR.inacti==6))
281 . ipari(22) = -inacti ! Negative passage for sizing
282 intbuf_tab%I_STOK(1)=iwpene
283C
284C IF(NUMELS10>0)CALL
285C . INSOLT10(IXS(1,NUMELS8+1),IXS(1,NUMELS+1),INTBUF_TAB%IRECTM),
286C . NOINT,NRTM,ITAB,KNOD2ELS,NOD2ELS)
287C=======================================================================
288C COPIE DONNEES RBODY => INTERFACE
289C----------------------------------------------------------------
290 irb=intstamp%IRB
291 msr=intstamp%MSR
292 intstamp%XG(1)=x(1,msr)
293 intstamp%XG(2)=x(2,msr)
294 intstamp%XG(3)=x(3,msr)
295 intstamp%V(1) =v(1,msr)
296 intstamp%V(2) =v(2,msr)
297 intstamp%V(3) =v(3,msr)
298 intstamp%MASS =ms(msr)
299 DO j=1,9
300 intstamp%ROT(j)=rby(j,irb)
301 END DO
302 intstamp%IN(1)=rby(10,irb)
303 intstamp%IN(2)=rby(11,irb)
304 intstamp%IN(3)=rby(12,irb)
305 intstamp%VR(1)=vr(1,msr)
306 intstamp%VR(2)=vr(2,msr)
307 intstamp%VR(3)=vr(3,msr)
308C----------------------------------------------------------------
309C CHECK MAIN NODES OF INTERFACE BELONG TO ASSOCIATED RBODY
310C----------------------------------------------------------------
311 k=0
312 DO n=1,irb-1
313 k=k+npby(2,n)
314 END DO
315C
316 tagnod(1:numnod)=0
317C
318 nsl=npby(2,irb)
319 DO i=1,nsl
320 n=lpby(k+i)
321 tagnod(n)=1
322 END DO
323C
324 DO i=1,nmn
325 n=intbuf_tab%MSR(i)
326 IF(tagnod(n)==0)THEN
327 CALL ancmsg(msgid=932,
328 . msgtype=msgerror,
329 . anmode=aninfo,
330 . i1=id,
331 . c1=titr,
332 . i2=itab(n),
333 . i3=nom_opt(1,irb))
334 END IF
335 END DO
336C----------------------------------------------------------------
337C PASSAGE OF NOD_NORMAL and XM0 in LOCAL COORDS
338C - DS REP INERTIES PRINCIPALES)
339C----------------------------------------------------------------
340 irot=intstamp%IROT
341 CALL i21rot(
342 1 irot ,intstamp%XG,intstamp%ROT,nmn ,intbuf_tab%NOD_NORMAL,
343 2 intbuf_tab%XM0,intstamp%BRACKET,nrtm,intbuf_tab%IRECTM,
344 . intbuf_tab%VARIABLES(27),
345 3 intbuf_tab%VARIABLES(28),intbuf_tab%VARIABLES(29),nsn,intbuf_tab%XSAV)
346C=======================================================================
347 ENDIF
348 DEALLOCATE(tagnod)
349C
350 RETURN
351C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
352 2001 FORMAT(//,1x,'INTERFACE NUMBER. . . . . . . . . . . . . .',i10/
353 + ,1x,'INTERFACE TYPE. . . . . . . . . . . . . . .',i6/)
354 2002 FORMAT(//
355 +' SECONDARY NEAREST NEAREST MAIN NODES SECONDARY '/
356 +' NODE MAIN SEGMENT S T')
357 2022 FORMAT(//
358 +' SECONDARY NEAREST MAIN NODES SECONDARY '/
359 +' NODE SEGMENT ',
360 +' S T DIST')
361 2003 FORMAT(//
362 +' MAIN NEAREST NEAREST SECONDARY NODES MAIN'/
363 +' NODE SECONDARY SEGMENT S T')
364 2007 FORMAT(//' IMPACT CANDIDATES',/,
365 +' MAIN SECONDARY NODES '/
366 +' NODE ')
367 2011 FORMAT(//' IMPACT CANDIDATES',/,
368 +' MAIN NODES SECONDARY NODES ')
369C-----
#define my_real
Definition cppsort.cpp:32
subroutine i21buc1(x, irect, nsv, bumult, nseg, nmn, nrtm, mwa, nsn, cand_e, cand_n, gap, xyzm, noint, i_stok, dist, tzinf, maxbox, minbox, msr, stf, multimp, itab, gap_s, igap, gapmin, gapmax, inacti, nrts, irects, xm0, depth, margeref, drad, id, titr, i_mem, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, stif, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, pene, prov_n, prov_e, n11, n21, n31, dgapload)
Definition i21buc3.F:57
subroutine i21norm3(x, irectm, nrtm, nmn, msr, nint, nty, noint, nod_normal, xm0)
Definition i21norm3.F:31
subroutine i21rcurv(nrtm, xm0, nod_normal, irect, rcurv, anglm)
Definition i21norm3.F:250
subroutine i21pwr3(itab, inacti, cand_e, cand_n, stfn, x, i_stok, nsv, iwpene, peni, noint, nty, gap_s, msr, irtlm, irect, xm0, gapmin, gapmax, depth, nsn, itag, drad, id, titr)
Definition i21pwr3.F:38
subroutine i21rot(irot, xg, rot, nmn, nod_normal, xm0, bracket, nrtm, irectm, lxm, lym, lzm, nsn, xsav)
Definition i21rot.F:31
initmumps id
integer, parameter nchartitle
subroutine i21dst3(jlt, cand_n, cand_e, irect, nsv, gap_s, x, irtlm, csts, depth, nod_normal, xm0, pene, peni, ifpen, igap, gap, gapmax, gapmin, drad, dgapload)
Definition i21dst3.F:34
subroutine i21gap3(x, irects, irectm, nrts, nrtm, geo, pm, ixs, ixc, ixtg, nint, nty, noint, nsn, nsv, gap, igap, gap_s, gapmin, criter, gapmax, ieles, stf, nmn, msr, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, thknod, ikine, itab, inacti, gapscale, stfn, depth, gap_s0, area_s0, xm0, lxm, lym, lzm, intth, drad, iparts, ipartc, ipartg, thk_part, thknod0, id, titr, dgapload, resort)
Definition i21gap3.F:46
subroutine i21reset(nsn, irtlm, csts)
Definition i21reset.F:29
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 tagnod(ix, nix, nix1, nix2, numel, iparte, tagbuf, npart)
Definition tagnod.F:29