OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i21mainf.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!|| i21mainf ../engine/source/interfaces/int21/i21mainf.f
25!||--- called by ------------------------------------------------------
26!|| intfop2 ../engine/source/interfaces/interf/intfop2.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| frictionparts_model_isot ../engine/source/interfaces/int07/frictionparts_model.f
31!|| i21ass3 ../engine/source/interfaces/int21/i21ass3.F
32!|| i21cor3 ../engine/source/interfaces/int21/i21cor3.F
33!|| i21for3 ../engine/source/interfaces/int21/i21for3.F
34!|| i21sms2 ../engine/source/interfaces/int21/i21sms2.F
35!|| i21therm ../engine/source/interfaces/int21/i21therm.F
36!|| i7cdcor3 ../engine/source/interfaces/int07/i7cdcor3.F
37!|| startime ../engine/source/system/timer_mod.F90
38!|| stoptime ../engine/source/system/timer_mod.F90
39!|| sum_6_float_sens ../engine/source/system/parit.F
40!||--- uses -----------------------------------------------------
41!|| h3d_mod ../engine/share/modules/h3d_mod.F
42!|| intbuf_fric_mod ../common_source/modules/interfaces/intbuf_fric_mod.F90
43!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
44!|| intstamp_mod ../engine/share/modules/intstamp_mod.F
45!|| message_mod ../engine/share/message_module/message_mod.F
46!|| my_alloc_mod ../common_source/tools/memory/my_alloc.F90
47!|| output_mod ../common_source/modules/output/output_mod.F90
48!|| timer_mod ../engine/source/system/timer_mod.F90
49!||====================================================================
50 SUBROUTINE i21mainf(output,TIMERS,
51 1 IPARI ,INTBUF_TAB ,X ,A ,
52 2 ICODT ,FSAV ,V ,MS ,ITAB ,
53 3 STIFN ,FSKYI ,ISKY ,FCONT ,NIN ,
54 4 LINDMAX ,JTASK ,NB_JLT ,NB_JLT_NEW,NB_STOK_N,
55 5 NSTRF ,SECFCUM ,ICONTACT ,VISCN ,NUM_IMP ,
56 6 NS_IMP ,NE_IMP ,IND_IMP ,NRTMDIM ,FNCONT ,
57 7 FTCONT ,RCONTACT ,ACONTACT ,PCONTACT,INTSTAMP,
58 8 WEIGHT ,TEMP ,FTHE ,FTHESKYI,MSKYI_SMS,
59 9 ISKYI_SMS ,NODNX_SMS ,NODGLOB,NPC ,TF ,
60 A QFRICINT,NCONT ,INDEXCONT ,TAGCONT,CONDN ,
61 B CONDNSKYI,DT2T ,NELTST ,ITYPTST ,KINET ,
62 C FBSAV6 ,ISENSINT,DIMFB ,NISKYFI ,H3D_DATA ,
63 D PSKIDS ,TAGNCONT,KLOADPINTER,LOADPINTER,LOADP_HYD_INTER,
64 E DGAPLOADINT,S_LOADPINTER,INTEREFRIC ,NODADT_THERM,THEACCFACT,
65 F INTBUF_FRIC_TAB)
66C-----------------------------------------------
67C M o d u l e s
68C-----------------------------------------------
69 USE output_mod
70 USE timer_mod
71 USE intstamp_mod
72 USE intbufdef_mod
73 USE h3d_mod
74 USE message_mod
75 USE my_alloc_mod
76 USE intbuf_fric_mod
77C-----------------------------------------------
78C I m p l i c i t T y p e s
79C-----------------------------------------------
80#include "implicit_f.inc"
81#include "comlock.inc"
82C-----------------------------------------------
83C G l o b a l P a r a m e t e r s
84C-----------------------------------------------
85#include "mvsiz_p.inc"
86C-----------------------------------------------
87C C o m m o n B l o c k s
88C-----------------------------------------------
89#include "com04_c.inc"
90#include "com08_c.inc"
91#include "impl1_c.inc"
92#include "param_c.inc"
93#include "parit_c.inc"
94#include "sms_c.inc"
95#include "task_c.inc"
96#include "timeri_c.inc"
97#include "warn_c.inc"
98#include "macro.inc"
99C-----------------------------------------------
100C D u m m y A r g u m e n t s
101C-----------------------------------------------
102 type(output_), intent(inout) :: output
103 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
104 INTEGER NELTST, ITYPTST, NIN, NSTRF(*), NRTMDIM
105 INTEGER IPARI(NPARI,NINTER), ICODT(*),ICONTACT(*),
106 . ITAB(*), ISKY(*), ISKYI_SMS(*), NODNX_SMS(*),
107 . NODGLOB(*), NPC(*),INDEXCONT(*),
108 . TAGCONT(*),KINET(*),
109 . TAGNCONT(NLOADP_HYD_INTER,NUMNOD)
110 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK,
111 . LINDMAX, NCONT,NISKYFI
112 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*), WEIGHT(*),
113 . ISENSINT(*),DIMFB
114 INTEGER , INTENT(IN) :: S_LOADPINTER
115 INTEGER , INTENT(IN) :: KLOADPINTER(NINTER+1)
116 INTEGER , INTENT(IN) :: LOADPINTER(S_LOADPINTER)
117 INTEGER , INTENT(IN) :: LOADP_HYD_INTER(NLOADP_HYD)
118 INTEGER , INTENT(IN) :: INTEREFRIC
119 INTEGER , INTENT(IN) :: NODADT_THERM
120 !
121 my_real , intent(in) :: theaccfact
122 my_real , INTENT(IN) :: dgaploadint(s_loadpinter)
123 my_real
124 . x(*), a(3,*), fsav(*), v(3,*),
125 . ms(*),stifn(*),fskyi(lskyi,4), fcont(3,*),
126 . secfcum(7,numnod,nsect), viscn(*),
127 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
128 . pcontact(*), temp(*), fthe(*), ftheskyi(lskyi), mskyi_sms(*),
129 . tf(*), qfricint(*),condn(*),condnskyi(lskyi), pskids(*), dt2t
130 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
131 TYPE(intstamp_data) INTSTAMP
132 TYPE(intbuf_struct_) INTBUF_TAB
133 TYPE(h3d_database) :: H3D_DATA
134 TYPE(intbuf_fric_struct_), TARGET, DIMENSION(NINTERFRIC) :: INTBUF_FRIC_TAB
135C-----------------------------------------------
136C L o c a l V a r i a b l e s
137C-----------------------------------------------
138 INTEGER I, I_STOK, JLT , NFT, J,
139 . IBC, NOINT, ISECIN, IBAG, IADM,
140 . IGAP, INACTI, IFQ, MFROT, IGSTI, NISUB,
141 . NB_LOC, I_STOK_LOC,DEBUT,
142 . INTTH,IFORM, MSTR, ILEV, IKTHE, IROT, H,
143 . IFORM_THE,INVN,IFTLIM, IERROR, NINSKID,INTFRIC,
144 . NSETPRTS ,NPARTFRIC,JJ,IORTHFRIC,NTY
145 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
146 . nsvg(mvsiz),
147 . cand_n_n(mvsiz), cand_e_n(mvsiz),
148 . nsms(mvsiz)
149 INTEGER,DIMENSION(:),ALLOCATABLE :: INDEX2
150 INTEGER :: NSN
151C REAL
152 my_real
153 . startt, fric, gap, stopt,
154 . visc,stiglo,gapmin,viscf,
155 . kmin, kmax, gapmax, kthe, xthe, tint, dti ,pmaxskid
156C-----------------------------------------------
157C REAL
158 my_real
159 . lb(mvsiz), lc(mvsiz),
160 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
161 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
162 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
163 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
164 . nx(mvsiz), ny(mvsiz), nz(mvsiz), pene(mvsiz),
165 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
166 . gap0(mvsiz), area0(mvsiz), tempi(mvsiz), phi(mvsiz),
167 . mxi(mvsiz), myi(mvsiz), mzi(mvsiz), stri(mvsiz),
168 . asi(mvsiz), bsi(mvsiz),dist(mvsiz),
169 . xp(mvsiz), yp(mvsiz), zp(mvsiz), kt(mvsiz), c(mvsiz),
170 . penrad(mvsiz), tempm(mvsiz),efrict(mvsiz),condint(mvsiz),
171 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
172 . phi1(mvsiz),phi2(mvsiz),phi3(mvsiz),phi4(mvsiz),pratio(mvsiz),
173 . efric_l(mvsiz)
174 my_real
175 . rcurvi(mvsiz), anglmi(mvsiz), anglt, padm
176 INTEGER NRADM, ITRIA(MVSIZ)
177 my_real
178 . FNI(MVSIZ),
179 . FXT(MVSIZ), FYT(MVSIZ), FZT(MVSIZ),
180 . FXN(MVSIZ), FYN(MVSIZ), FZN(MVSIZ),
181 . VXM, VYM, VZM, PMAX,
182 . XG(3), ROT(9), WXM, WYM, WZM, FRAD, DRAD, FHEAT, XFRIC,DCOND
183 INTEGER ICURV,SFSAVPARIT,IFRIC,FCOND
184 my_real
185 . , DIMENSION(:,:,:), ALLOCATABLE :: FSAVPARIT
186 my_real
187 . FRIC_COEFS(MVSIZ,10),VISCFFRIC(MVSIZ),FRICC(MVSIZ)
188
189 INTEGER IPARTFRICSI(MVSIZ), IPARTFRICMI(MVSIZ)
190
191 INTEGER, DIMENSION(:) ,POINTER :: TABCOUPLEPARTS_FRIC
192 INTEGER, DIMENSION(:) ,POINTER :: TABPARTS_FRIC
193 INTEGER, DIMENSION(:) ,POINTER :: ADPARTS_FRIC
194 INTEGER, DIMENSION(:) ,POINTER :: IFRICORTH
195 my_real, DIMENSION(:) ,POINTER :: TABCOEF_FRIC
196
197 INTEGER,TARGET, DIMENSION(1):: TABCOUPLEPARTS_FRIC_BID
198 INTEGER,TARGET, DIMENSION(1):: TABPARTS_FRIC_BID
199 INTEGER,TARGET, DIMENSION(1):: ADPARTS_FRIC_BID
200 INTEGER,TARGET, DIMENSION(1):: IFRICORTH_BID
201 my_real,TARGET, DIMENSION(1):: tabcoef_fric_bid
202C----------------------------------------------------
203 CALL my_alloc(index2,lindmax)
204C----------------------------------------------------
205C
206 nsn =ipari(5,nin)
207 ibc =ipari(11,nin)
208 IF(ipari(33,nin)==1) RETURN
209 noint =ipari(15,nin)
210 ilev =ipari(20,nin)
211 igap =ipari(21,nin)
212 inacti=ipari(22,nin)
213 isecin=ipari(28,nin)
214 mfrot =ipari(30,nin)
215 ifq =ipari(31,nin)
216 ibag =ipari(32,nin)
217 igsti=ipari(34,nin)
218 nisub =ipari(36,nin)
219 icurv =ipari(39,nin)
220C adaptive meshing
221 iadm =ipari(44,nin)
222 nradm=ipari(49,nin)
223 padm =intbuf_tab%VARIABLES(24)
224 anglt=intbuf_tab%VARIABLES(25)
225C heat interface
226 intth = ipari(47,nin)
227 ikthe = ipari(42,nin)
228 iform_the = ipari(48,nin)
229 kthe = intbuf_tab%VARIABLES(20)
230 xthe = intbuf_tab%VARIABLES(30)
231 tint = intbuf_tab%VARIABLES(21)
232 frad = intbuf_tab%VARIABLES(31)
233 drad = intbuf_tab%VARIABLES(32)
234 fcond = ipari(53,nin) ! function of variation of heat exchange as funct of distance
235 dcond = intbuf_tab%VARIABLES(36) ! max conduction distance
236C
237 mstr=intstamp%MSR
238C
239 stiglo=-intbuf_tab%STFAC(1)
240 startt=intbuf_tab%VARIABLES(3)
241 stopt =intbuf_tab%VARIABLES(11)
242 IF(startt>tt) RETURN
243 IF(tt>stopt) RETURN
244C
245 fric =intbuf_tab%VARIABLES(1)
246 gap =intbuf_tab%VARIABLES(2)
247 gapmin=intbuf_tab%VARIABLES(13)
248 visc =intbuf_tab%VARIABLES(14)
249 ifric =ipari(50,nin)
250 xfric =intbuf_tab%VARIABLES(34)
251C
252 pmax =intbuf_tab%VARIABLES(15)
253C
254 gapmax=intbuf_tab%VARIABLES(16)
255 kmin =intbuf_tab%VARIABLES(17)
256 kmax =intbuf_tab%VARIABLES(18)
257C
258 fheat =intbuf_tab%VARIABLES(33)
259C
260 invn =ipari(51,nin) ! Flag to detect inverted normals
261C
262 iftlim =ipari(52,nin) ! Flag to limit tangential force using YLD/sqrt(3)
263C
264 vxm=intstamp%V(1)
265 vym=intstamp%V(2)
266 vzm=intstamp%V(3)
267 wxm=intstamp%VR(1)
268 wym=intstamp%VR(2)
269 wzm=intstamp%VR(3)
270 irot=intstamp%IROT
271 xg(1:3) =intstamp%XG(1:3)
272 rot(1:9)=intstamp%ROT(1:9)
273
274 ninskid = 0
275 IF(h3d_data%N_SCAL_SKID > 0) THEN
276 ninskid = h3d_data%N_SKID_INTER(nin)
277 ENDIF
278 pmaxskid=intbuf_tab%VARIABLES(35)
279
280C--- Corresponding Friction model
281 intfric=ipari(72,nin)
282 nsetprts = 0
283 npartfric = 0
284 IF(intfric /= 0) THEN
285 tabcoupleparts_fric => intbuf_fric_tab(intfric)%TABCOUPLEPARTS_FRIC
286 tabcoef_fric => intbuf_fric_tab(intfric)%TABCOEF_FRIC
287 tabparts_fric => intbuf_fric_tab(intfric)%TABPARTS_FRIC
288 adparts_fric => intbuf_fric_tab(intfric)%ADPARTS_FRIC
289 nsetprts = intbuf_fric_tab(intfric)%NSETPRTS
290 npartfric = intbuf_fric_tab(intfric)%S_TABPARTS_FRIC
291 ELSE
292 tabcoupleparts_fric => tabcoupleparts_fric_bid
293 tabparts_fric => tabparts_fric_bid
294 tabcoef_fric => tabcoef_fric_bid
295 adparts_fric => adparts_fric_bid
296 ifricorth => ifricorth_bid
297 ENDIF
298C
299c----------------------------------------------------
300C IADM!=0 + Icurv!=0 non available (starter error).
301c----------------------------------------------------
302 i_stok = intbuf_tab%I_STOK(1)
303
304C
305C static decoupage
306 nb_loc = i_stok / nthread
307 IF (jtask==nthread) THEN
308 i_stok_loc = i_stok-nb_loc*(nthread-1)
309 ELSE
310 i_stok_loc = nb_loc
311 ENDIF
312 debut = (jtask-1)*nb_loc
313C
314 i_stok = 0
315C
316 IF (impl_s==1) THEN
317 num_imp = 0
318 visc =zero
319 ENDIF
320C
321 DO i = debut+1, debut+i_stok_loc
322 j=intbuf_tab%CAND_N(i)
323C irtlm(1,cand_n) == cand_e
324 IF(abs(intbuf_tab%IRTLM(1+2*(j-1)))==intbuf_tab%CAND_E(i)) THEN
325 i_stok = i_stok + 1
326 index2(i_stok) = i
327c INTBUF_TAB%CAND_N(I) = -INTBUF_TAB%CAND_N(I)
328 ENDIF
329 ENDDO
330C
331c------------------------------------------------
332C
333 sfsavparit = 0
334 DO i=1,nisub+1
335 IF(isensint(i)/=0) THEN
336 sfsavparit = sfsavparit + 1
337 ENDIF
338 ENDDO
339 IF (sfsavparit /= 0) THEN
340 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
341 IF(ierror/=0) THEN
342 CALL ancmsg(msgid=19,anmode=aninfo,
343 . c1='(/INTER/TYPE21)')
344 CALL arret(2)
345 ENDIF
346 DO j=1,i_stok
347 DO i=1,11
348 DO h=1,nisub+1
349 fsavparit(h,i,j) = zero
350 ENDDO
351 ENDDO
352 ENDDO
353 ELSE
354 ALLOCATE(fsavparit(0,0,0),stat=ierror)
355 IF(ierror/=0) THEN
356 CALL ancmsg(msgid=19,anmode=aninfo,
357 . c1='(/INTER/TYPE21)')
358 CALL arret(2)
359 ENDIF
360 ENDIF
361c
362c------------------------------------------------
363 IF (debug(3)>=1) THEN
364 nb_jlt = nb_jlt + i_stok_loc
365 nb_stok_n = nb_stok_n + i_stok
366 ENDIF
367C
368 DO nft = 0 , i_stok - 1 , nvsiz
369 jlt = min( nvsiz, i_stok - nft )
370C preparation CANDIDATES retenus
371 CALL i7cdcor3(
372 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,
373 2 cand_e_n,cand_n_n)
374C cand_n and cand_e replaced by cand_n_n and cand_e_n
375 CALL i21cor3(
376 1 jlt ,nin ,x ,intbuf_tab%IRECTM,nsn ,
377 2 intbuf_tab%NSV,cand_e_n ,cand_n_n ,intbuf_tab%STF,
378 + intbuf_tab%STFNS,
379 3 intbuf_tab%XM0,intbuf_tab%NOD_NORMAL,intbuf_tab%IRTLM,intbuf_tab%CSTS,
380 + intbuf_tab%MSR_L,
381 4 ms ,v ,xi ,yi ,zi ,
382 5 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
383 6 igsti ,stif ,kmin ,kmax ,igap ,
384 7 gap ,intbuf_tab%GAP_S,gapv ,gapmax ,gapmin ,
385 8 nx ,ny ,nz ,pene ,vxm ,
386 9 vym ,vzm ,vxi ,vyi ,vzi ,
387 a msi ,itria ,lb ,lc ,iadm ,
388 b intbuf_tab%RCURV,intbuf_tab%ANGLM,nradm ,anglt ,rcurvi,
389 c anglmi ,fxt ,fyt ,fzt ,intbuf_tab%FTSAVX,
390 d intbuf_tab%FTSAVY,intbuf_tab%FTSAVZ ,intbuf_tab%GAP_S(1+nsn),
391 . intbuf_tab%AREAS,gap0 ,
392 e area0 ,intth ,temp ,tempi ,irot ,
393 f xg ,rot ,intbuf_tab%AS,intbuf_tab%BS,asi ,
394 g bsi ,xp ,yp ,zp ,nodnx_sms ,
395 h nsms ,mstr ,intbuf_tab%PENIS,intbuf_tab%IFPEN,ilev,
396 i x1 ,y1 ,z1 ,x2 ,y2 ,
397 j z2 ,x3 ,y3 ,z3 ,x4 ,
398 k y4 ,z4 ,drad ,penrad ,tint ,
399 l tempm ,iform_the ,h1 ,h2 ,h3 ,
400 m h4 ,dist ,itab ,noint ,intbuf_tab%VARIABLES(23),
401 n invn , intfric,intbuf_tab%IPARTFRICS,ipartfricsi,intbuf_tab%IPARTFRICM,
402 o ipartfricmi,ipari(5,nin) )
403
404C-------------------------------------------------------------------------------
405C Friction model : computation of friction coefficients based on Material of connected Parts
406C-------------------------------------------------------------------------------
407 IF(jtask==1) CALL startime(timers,macro_timer_fric)
408 viscf = zero
409 iorthfric = 0
410 jj = 0
411 nty = 21
413 1 intfric ,jlt ,ipartfricsi ,ipartfricmi ,adparts_fric ,
414 2 nsetprts ,tabcoupleparts_fric,npartfric,tabparts_fric,tabcoef_fric ,
415 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs , fricc ,
416 4 viscffric ,nty ,mfrot ,iorthfric ,ifric ,
417 5 jj , tint ,tempi ,npc ,tf ,
418 6 temp , h1 ,h2 ,h3 ,h4 ,
419 7 ix1 , ix2 ,ix3 ,ix4 ,iform )
420
421 IF(jtask==1) CALL stoptime(timers,macro_timer_fric)
422
423 IF (imonm > 0 .AND. jtask == 1) CALL startime(timers,20)
424
425 ipari(29,nin) = 1
426 IF (debug(3)>=1)
427 . nb_jlt_new = nb_jlt_new + jlt
428C
429 CALL i21for3(
430 1 jlt ,nin ,noint ,ibc ,icodt ,
431 2 fsav ,gap ,stiglo ,visc ,inacti ,
432 3 mfrot ,ifq ,ibag ,iadm ,ipari(39,nin) ,
433 4 stif ,gapv ,itab ,intbuf_tab%PENIS,intbuf_tab%ALPHA0,
434 5 intbuf_tab%IFPEN ,icontact ,rcontact,acontact ,pcontact,
435 6 nsvg ,x1 ,y1 ,z1 ,x2 ,
436 7 y2 ,z2 ,x3 ,y3 ,z3 ,
437 8 x4 ,y4 ,z4 ,xi ,yi ,
438 9 zi ,vxi ,vyi ,vzi ,msi ,
439 a vxm ,vym ,vzm ,nx ,ny ,
440 b nz ,pene ,fxt ,fyt ,fzt ,
441 c fxn ,fyn ,fzn ,rcurvi ,anglmi ,
442 d padm ,cand_n_n,weight ,igap ,gap0 ,
443 e area0 ,pmax ,irot ,xg ,mxi ,
444 g myi ,mzi ,stri ,wxm ,wym ,
445 h wzm ,xp ,yp ,zp ,kt ,
446 i c ,ilev ,fni ,intth ,fheat ,
447 j efrict ,qfricint(nin),ifric ,xfric ,tempi ,
448 k tempm ,npc ,tf ,ix1 ,ix2 ,
449 l ix3 ,ix4 ,dt2t ,neltst ,ityptst ,
450 m kinet ,nisub ,isensint ,fsavparit,nft ,
451 n iftlim ,ninskid ,pratio ,pmaxskid ,interefric ,
452 o efric_l ,fricc ,fric_coefs)
453C
454 IF( intth > 0 ) THEN
455 CALL i21therm(jlt ,xi ,yi ,zi ,kthe ,
456 2 tempi ,phi ,area0 ,noint ,asi ,
457 3 bsi ,gapv ,pene ,ikthe ,xthe ,
458 4 fni ,npc ,tf ,frad ,drad ,
459 5 penrad ,tempm ,fheat ,efrict,condint,
460 6 iform_the,h1 ,h2 ,h3 ,h4 ,
461 7 phi1 ,phi2 ,phi3 ,phi4 ,x1 ,
462 8 y1 ,z1 ,x2 ,y2 ,z2 ,
463 9 x3 ,y3 ,z3 ,x4 ,y4 ,
464 a z4 ,itab ,nsvg ,intbuf_tab%MSR_L,ix1 ,
465 b ix2 ,ix3 ,ix4 ,temp ,fcond ,
466 c dcond ,theaccfact)
467 ENDIF
468C
469 IF(idtmins==2.OR.idtmins_int/=0)THEN
470 dti=dt2t
471 CALL i21sms2(jlt ,mstr ,nsvg ,nin ,noint ,
472 2 mskyi_sms ,iskyi_sms,nsms ,kt ,c ,
473 3 dti )
474 IF(dti<dt2t)THEN
475 dt2t = dti
476 neltst = noint
477 ityptst = 10
478 ENDIF
479 END IF
480C
481 IF(idtmins_int/=0)THEN
482 stif(1:jlt)=zero
483 END IF
484C
485 CALL i21ass3(output, jlt ,a ,nin ,noint ,fxn ,
486 2 fyn ,fzn ,fxt ,fyt ,fzt ,
487 3 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
488 4 fcont ,fncont ,ftcont ,lb ,lc ,
489 5 itria ,stifn ,stif ,fskyi ,isky ,
490 6 isecin ,nstrf ,secfcum ,intbuf_tab%FTSAVX,
491 . intbuf_tab%FTSAVY,
492 7 intbuf_tab%FTSAVZ ,cand_n_n ,intstamp,weight ,
493 . intbuf_tab%MSR21,
494 8 intth ,phi ,fthe ,ftheskyi ,mxi ,
495 9 myi ,mzi ,stri ,nodglob ,ncont ,
496 a indexcont,tagcont ,condn ,condint ,condnskyi,
497 b iform_the, phi1 ,phi2 ,phi3 ,phi4 ,
498 c h1 ,h2 ,h3 ,h4 ,niskyfi ,
499 d intbuf_tab%MSR_L ,itab ,h3d_data ,ninskid ,
500 e pratio ,h3d_data%N_SCAL_SKID,pskids ,ipari(95,nin),
501 f tagncont ,kloadpinter,loadpinter ,loadp_hyd_inter,
502 g dgaploadint,dist,gapv,s_loadpinter ,efric_l ,
503 h fheat ,efrict ,interefric ,
504 . nodadt_therm)
505C
506 IF (imonm > 0 .AND. jtask == 1) CALL stoptime(timers,20)
507C
508 ENDDO
509
510c
511 IF (sfsavparit /= 0)THEN
512 CALL sum_6_float_sens(fsavparit, nisub+1, 11, i_stok,1,i_stok,
513 . fbsav6, 12, 6, dimfb, isensint )
514 ENDIF
515 IF (ALLOCATED(fsavparit)) DEALLOCATE (fsavparit)
516 DEALLOCATE(index2)
517C
518 RETURN
519 END
#define my_real
Definition cppsort.cpp:32
subroutine frictionparts_model_isot(intfric, jlt, ipartfricsi, ipartfricmi, adparts_fric, nset, tabcoupleparts_fric, npartfric, tabparts_fric, tabcoef_fric, fric, viscf, frot_p, fric_coefs, fricc, viscffric, nty, mfrot, iorthfric, ifric, jlt_tied, tint, tempi, npc, tf, temp, h1, h2, h3, h4, ix1, ix2, ix3, ix4, iform)
subroutine i21ass3(output, jlt, a, nin, noint, fxn, fyn, fzn, fxt, fyt, fzt, ix1, ix2, ix3, ix4, nsvg, fcont, fncont, ftcont, lb, lc, itria, stifn, stif, fskyi, isky, isecin, nstrf, secfcum, ftxsav, ftysav, ftzsav, cand_n, intstamp, weight, msr, intth, phi, fthe, ftheskyi, mxi, myi, mzi, stri, nodglob, ncont, indexcont, tagcont, condn, condint, condnskyi, iform, phi1, phi2, phi3, phi4, h1, h2, h3, h4, niskyfi, msrl, itab, h3d_data, ninskid, pratio, ninterskid, pskids, iflagloadp, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, dist, gapv, s_loadpinter, efric_l, fheat, efrict, interefric, nodadt_therm)
Definition i21ass3.F:52
subroutine i21cor3(jlt, nin, x, irect, nsn, nsv, cand_e, cand_n, stf, stfn, xm0, nod_normal, irtlm, csts, msr, ms, v, xi, yi, zi, ix1, ix2, ix3, ix4, nsvg, igsti, stif, kmin, kmax, igap, gap, gap_s, gapv, gapmax, gapmin, nx, ny, nz, pene, vxm, vym, vzm, vxi, vyi, vzi, msi, itria, lb, lc, iadm, rcurv, anglm, nradm, anglt, rcurvi, anglmi, fxt, fyt, fzt, ftxsav, ftysav, ftzsav, gap_s0, area_s0, gap0, area0, intth, temp, tempi, irot, xg, rot, as, bs, asi, bsi, xp, yp, zp, nodnx_sms, nsms, mstr, peni, ifpen, ilev, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, drad, penrad, tint, tempm, iform, h1, h2, h3, h4, dist, itab, noint, depth, invn, intfric, ipartfrics, ipartfricsi, ipartfricm, ipartfricmi, nrtm)
Definition i21cor3.F:55
subroutine i21for3(jlt, nin, noint, ibcc, icodt, fsav, gap, stiglo, visc, inacti, mfrot, ifq, ibag, iadm, icurv, stif, gapv, itab, peni, alpha0, ifpen, icontact, rcontact, acontact, pcontact, nsvg, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, xi, yi, zi, vxi, vyi, vzi, msi, vxm, vym, vzm, nx, ny, nz, pene, fxt, fyt, fzt, fxn, fyn, fzn, rcurvi, anglmi, padm, cand_n_n, weight, igap, gap0, area0, pmax, irot, xg, mxi, myi, mzi, stri, wxm, wym, wzm, xp, yp, zp, kt, c, ilev, fni, intth, fheat, efrict, qfric, ifric, xfric, tempi, tempm, npc, tf, ix1, ix2, ix3, ix4, dt2t, neltst, ityptst, kinet, nisub, isensint, fsavparit, nft, iftlim, pskidflag, pratio, pmaxskid, interefric, efric_l, fricc, fric_coefs)
Definition i21for3.F:54
subroutine i21mainf(output, timers, ipari, intbuf_tab, x, a, icodt, fsav, v, ms, itab, stifn, fskyi, isky, fcont, nin, lindmax, jtask, nb_jlt, nb_jlt_new, nb_stok_n, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, nrtmdim, fncont, ftcont, rcontact, acontact, pcontact, intstamp, weight, temp, fthe, ftheskyi, mskyi_sms, iskyi_sms, nodnx_sms, nodglob, npc, tf, qfricint, ncont, indexcont, tagcont, condn, condnskyi, dt2t, neltst, ityptst, kinet, fbsav6, isensint, dimfb, niskyfi, h3d_data, pskids, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, s_loadpinter, interefric, nodadt_therm, theaccfact, intbuf_fric_tab)
Definition i21mainf.F:66
subroutine i21sms2(jlt, mstr, nsvg, nin, noint, mskyi_sms, iskyi_sms, nsms, kt, c, dti)
Definition i21sms2.F:37
subroutine i21therm(jlt, xi, yi, zi, kthe, tempi, phi, areas, noint, asi, bsi, gapv, pene, ifunctk, xthe, fni, npc, tf, frad, drad, penrad, tempm, fheat, efrict, condint, iform, h1, h2, h3, h4, phi1, phi2, phi3, phi4, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, itab, nsv, msr, ix1, ix2, ix3, ix4, temp, fcond, dcond, theaccfact)
Definition i21therm.F:42
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 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 startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135
character *8 function stri(n)
Definition stri.F:24