OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_type21.F File Reference
#include "implicit_f.inc"
#include "scr06_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "intstamp_c.inc"
#include "units_c.inc"
#include "scr12_c.inc"
#include "remesh_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_inter_type21 (ipari, stfac, frigap, noint, ni, igrsurf, xfiltr, fric_p, npc1, sensors, nom_opt, unitab, lsubmodel, titr, npc, tf, npari, nparir, snpc, snpc1, lnopt1, itherm_fe, intheat, nom_optfric, intbuf_fric_tab)

Function/Subroutine Documentation

◆ hm_read_inter_type21()

subroutine hm_read_inter_type21 ( integer, dimension(npari) ipari,
stfac,
frigap,
integer noint,
integer ni,
type (surf_), dimension(nsurf), target igrsurf,
xfiltr,
fric_p,
integer, dimension(snpc1) npc1,
type (sensors_), intent(in) sensors,
integer, dimension(lnopt1,*) nom_opt,
type (unit_type_), intent(in) unitab,
type(submodel_data), dimension(nsubmod), intent(in) lsubmodel,
character(len=nchartitle), intent(in) titr,
integer, dimension(snpc) npc,
tf,
integer, intent(in) npari,
integer, intent(in) nparir,
integer, intent(in) snpc,
integer, intent(in) snpc1,
integer, intent(in) lnopt1,
integer, intent(in) itherm_fe,
integer, intent(inout) intheat,
integer, dimension(lnopt1,ninterfric), intent(in) nom_optfric,
type(intbuf_fric_struct_), dimension(ninterfric), intent(inout) intbuf_fric_tab )

Definition at line 40 of file hm_read_inter_type21.F.

46C============================================================================
47C
48C-----------------------------------------------
49C M o d u l e s
50C-----------------------------------------------
51 USE message_mod
52 USE intbuf_fric_mod
53 USE groupdef_mod
55 USE unitab_mod
56 USE sensor_mod
57 USE intbufdef_mod
59C-----------------------------------------------
60C I m p l i c i t T y p e s
61C-----------------------------------------------
62#include "implicit_f.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER,INTENT(IN) :: NPARI,NPARIR,SNPC,SNPC1,LNOPT1
67 INTEGER,INTENT(IN) :: ITHERM_FE
68 INTEGER,INTENT(INOUT) :: INTHEAT
69 INTEGER,INTENT(IN) :: NOM_OPTFRIC(LNOPT1,NINTERFRIC)
70 INTEGER NOM_OPT(LNOPT1,*)
71 INTEGER ISU1, ISU2, NI
72 INTEGER IPARI(NPARI),NPC1(SNPC1),NPC(SNPC)
73 my_real stfac,xfiltr
74 my_real frigap(nparir),fric_p(10),tf(*)
75 CHARACTER(LEN=NCHARTITLE),INTENT(IN) :: TITR
76C-----------------------------------------------
77 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
78 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
79 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
80 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
81 TYPE(INTBUF_FRIC_STRUCT_),INTENT(INOUT) :: INTBUF_FRIC_TAB(NINTERFRIC)
82C-----------------------------------------------
83C C o m m o n B l o c k s
84C-----------------------------------------------
85#include "scr06_c.inc"
86#include "com01_c.inc"
87#include "com04_c.inc"
88#include "intstamp_c.inc"
89#include "units_c.inc"
90#include "scr12_c.inc"
91#include "remesh_c.inc"
92C-----------------------------------------------
93C L o c a l V a r i a b l e s
94C-----------------------------------------------
95
96 INTEGER I,IBC1, IBC2, IBC3, NOINT, NTYP,INACTI, IBC1M,
97 . IBC2M, IBC3M, IGSTI,IS1, IS2,ILEV, IGAP,MULTIMP,
98 . MFROT,IFQ,MODFR,IADM,NRADM,INTTH,IFORM,IKTHE,
99 . IDEL21,IDSENS,IDELKEEP,INTKG,INVN,
100 . IFRICTH,IFTLIM,FCOND,INTFRIC
101 my_real
102 . fric,gap,startt,bumult,stopt,fheat,tint,padm,
103 . angladm, cadm, depth,c1,c2,c3,c4,c5,c6, alpha,gapscale,gapmax,
104 . stmin,stmax, pmax, kthe, xthe, frad, drad,
105 . visc,xfricth,pskid,dcond,xthe_unit,kthe_unit
106 INTEGER, DIMENSION(:), POINTER :: INGR2USR
107 LOGICAL IS_AVAILABLE
108C-----------------------------------------------
109C E x t e r n a l F u n c t i o n s
110C-----------------------------------------------
111 INTEGER NGR2USR
112CC=======================================================================
113C READING PENALTY INTERFACE /INTER/TYPE21
114C=======================================================================
115
116C Initializations
117 is1=0
118 is2=0
119 ibc1=0
120 ibc2=0
121 ibc3=0
122 ibc1m=0
123 ibc2m=0
124 ibc3m=0
125 mfrot=0
126 ifq=0
127 igsti = 0
128 invn = 0
129 iftlim=1
130 iadm =0
131 nradm=1
132 inacti = 0
133 ilev = 0
134 idsens = 0
135 idel21= 0
136 idelkeep=0
137 intth = 0
138 ifricth = 0
139 ikthe= 0
140 iform = 0
141 intkg = 0
142 fcond = 0
143 igap = 0
144 multimp = 0
145 intfric = 0
146C
147 padm =one
148 angladm=zero
149 stopt=ep30
150 fric = zero
151 gap = zero
152 gapscale = zero
153 startt = zero
154 visc = zero
155 xfiltr = zero
156
157 DO i = 1, 10
158 fric_p(i) = zero
159 ENDDO
160
161 kthe = zero
162 xthe = zero
163 tint = zero
164 frad = zero
165 drad = zero
166 fheat= zero
167 c1=zero
168 c2=zero
169 c3=zero
170 c4=zero
171 c5=zero
172 c6=zero
173 gapmax=ep30
174 gapscale = zero
175 dcond = zero
176 depth = zero
177C
178 nintstamp=nintstamp+1
179 ipari(43)=nintstamp
180C
181 ntyp=21
182 ipari(15)=noint
183 ipari(7)=ntyp
184C
185 is_available = .false.
186C--------------------------------------------------
187C EXTRACT DATAS (INTEGER VALUES)
188C--------------------------------------------------
189 CALL hm_get_intv('secondaryentityids',isu1,is_available,lsubmodel)
190 CALL hm_get_intv('mainentityids',isu2,is_available,lsubmodel)
191 CALL hm_get_intv('Istf',igsti,is_available,lsubmodel)
192 CALL hm_get_intv('Ithe',intth,is_available,lsubmodel)
193 CALL hm_get_intv('Igap',igap,is_available,lsubmodel)
194 CALL hm_get_intv('Multimp',multimp,is_available,lsubmodel)
195 CALL hm_get_intv('TYPE21_Idel',idel21,is_available,lsubmodel)
196 CALL hm_get_intv('TYPE21_Invn',invn,is_available,lsubmodel)
197 CALL hm_get_intv('Iadm',iadm,is_available,lsubmodel)
198C
199 IF(igap==1.OR.igap==2) CALL hm_get_intv('TYPE21_ITim',iftlim,is_available,lsubmodel)
200C
201 CALL hm_get_intv('Deactivate_X_BC',ibc1,is_available,lsubmodel)
202 CALL hm_get_intv('Deactivate_Y_BC',ibc2,is_available,lsubmodel)
203 CALL hm_get_intv('Deactivate_Z_BC',ibc3,is_available,lsubmodel)
204 CALL hm_get_intv('INACTIV',inacti,is_available,lsubmodel)
205C
206 CALL hm_get_intv('Ifric',mfrot,is_available,lsubmodel)
207 CALL hm_get_intv('Ifiltr',ifq,is_available,lsubmodel)
208 CALL hm_get_intv('ISENSOR',idsens,is_available,lsubmodel)
209 CALL hm_get_intv('Crx_Fun',ifricth,is_available,lsubmodel)
210 CALL hm_get_intv('Ifric',mfrot,is_available,lsubmodel)
211 CALL hm_get_intv('Fric_ID',intfric,is_available,lsubmodel)
212C
213 IF(iadm==2) CALL hm_get_intv('NRadm',nradm,is_available,lsubmodel)
214C
215 IF(intth > 0) THEN
216 CALL hm_get_intv('Ithe_form',iform,is_available,lsubmodel)
217 CALL hm_get_intv('fct_ID_k',ikthe,is_available,lsubmodel)
218 CALL hm_get_intv('F_COND',fcond,is_available,lsubmodel)
219 ENDIF
220C
221C--------------------------------------------------
222C EXTRACT DATAS (REAL VALUES)
223C--------------------------------------------------
224 IF(igap==1.OR.igap==2)THEN
225 CALL hm_get_floatv('GAPSCALE',gapscale,is_available,lsubmodel,unitab)
226 CALL hm_get_floatv('GAPMAX',gapmax,is_available,lsubmodel,unitab)
227 CALL hm_get_floatv('DIST',depth,is_available,lsubmodel,unitab)
228 CALL hm_get_floatv('PMAX',pmax,is_available,lsubmodel,unitab)
229 ENDIF
230C
231 CALL hm_get_floatv('STMIN',stmin,is_available,lsubmodel,unitab)
232 CALL hm_get_floatv('STMAX',stmax,is_available,lsubmodel,unitab)
233 CALL hm_get_floatv('Pskid',pskid,is_available,lsubmodel,unitab)
234C
235 CALL hm_get_floatv('STFAC',stfac,is_available,lsubmodel,unitab)
236 CALL hm_get_floatv('FRIC',fric,is_available,lsubmodel,unitab)
237 CALL hm_get_floatv('MINI',gap,is_available,lsubmodel,unitab)
238 CALL hm_get_floatv('TSTART',startt,is_available,lsubmodel,unitab)
239 CALL hm_get_floatv('TSTOP',stopt,is_available,lsubmodel,unitab)
240C
241 CALL hm_get_floatv('VISC',visc,is_available,lsubmodel,unitab)
242 CALL hm_get_floatv('SORT_FACT',bumult,is_available,lsubmodel,unitab)
243C
244 CALL hm_get_floatv('Xfreq',alpha,is_available,lsubmodel,unitab)
245 CALL hm_get_floatv('scale1',XFRICTH,IS_AVAILABLE,LSUBMODEL,UNITAB)
246C
247 IF (MFROT>0) THEN
248 CALL HM_GET_FLOATV('c1',C1,IS_AVAILABLE,LSUBMODEL,UNITAB)
249 CALL HM_GET_FLOATV('c2',C2,IS_AVAILABLE,LSUBMODEL,UNITAB)
250 CALL HM_GET_FLOATV('c3',C3,IS_AVAILABLE,LSUBMODEL,UNITAB)
251 CALL HM_GET_FLOATV('c4',C4,IS_AVAILABLE,LSUBMODEL,UNITAB)
252 CALL HM_GET_FLOATV('c5',C5,IS_AVAILABLE,LSUBMODEL,UNITAB)
253 ENDIF
254 IF (MFROT>1) THEN
255 CALL HM_GET_FLOATV('c6',C6,IS_AVAILABLE,LSUBMODEL,UNITAB)
256 ENDIF
257C
258 IF(IADM==2)THEN
259 CALL HM_GET_FLOATV('padm',PADM,IS_AVAILABLE,LSUBMODEL,UNITAB)
260 CALL HM_GET_FLOATV('angladm',ANGLADM,IS_AVAILABLE,LSUBMODEL,UNITAB)
261 ENDIF
262C
263C
264 IF(INTTH > 0) THEN
265 CALL HM_GET_FLOATV('kthe',KTHE,IS_AVAILABLE,LSUBMODEL,UNITAB)
266 CALL HM_GET_FLOATV('tint',TINT,IS_AVAILABLE,LSUBMODEL,UNITAB)
267 CALL HM_GET_FLOATV('a_scale_k',XTHE,IS_AVAILABLE,LSUBMODEL,UNITAB)
268 CALL HM_GET_FLOATV('f_rad',FRAD,IS_AVAILABLE,LSUBMODEL,UNITAB)
269 CALL HM_GET_FLOATV('d_rad',DRAD,IS_AVAILABLE,LSUBMODEL,UNITAB)
270 CALL HM_GET_FLOATV('heat_al',FHEAT,IS_AVAILABLE,LSUBMODEL,UNITAB)
271 CALL HM_GET_FLOATV('d_cond',DCOND,IS_AVAILABLE,LSUBMODEL,UNITAB)
272 ENDIF
273
274C------------------------------------------------------------
275C Card1 :flags
276C------------------------------------------------------------
277
278C
279C.....* CHECKS *........
280C
281 IF (IDEL21 < 0) THEN
282 IDELKEEP=1
283 IDEL21=ABS(IDEL21)
284 END IF
285C
286.OR. IF (IDEL21>2N2D==1) IDEL21 = 0
287C
288 IF(ILEV==0)THEN
289 ILEV=1
290 ELSEIF(ILEV==-1)THEN
291C emul past
292 ILEV=0
293 END IF
294C
295 IS1=1
296 INGR2USR => IGRSURF(1:NSURF)%ID
297 ISU1=NGR2USR(ISU1,INGR2USR,NSURF)
298 IS2=1
299 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
300C
301.AND. IF (IADM/=0NADMESH==0) THEN
302 CALL ANCMSG(MSGID=647,
303 . MSGTYPE=MSGWARNING,
304 . ANMODE=ANINFO_BLIND_2,
305 . I1=NOINT,
306 . C1=TITR)
307 IADM=0
308 ENDIF
309
310C.......* Storage IPARI FRIGAP *........
311 IPARI(21) = IGAP
312 IPARI(61) = IDELKEEP
313 IPARI(17) = IDEL21
314 IPARI(20) = ILEV
315 IPARI(34) = IGSTI
316 IPARI(51) = INVN ! flag to detect if normals are inverted (default =0)
317 IPARI(45)=ISU1
318 IPARI(46)=ISU2
319 IPARI(13)=IS1*10+IS2
320 IPARI(44)=IADM
321
322 IF(MULTIMP==0)THEN
323 MULTIMP=12
324 END IF
325 IPARI(23)=MULTIMP
326
327C------------------------------------------------------------
328C Card2
329C------------------------------------------------------------
330.OR. IF(IGAP==1IGAP==2)THEN
331C
332C.....* CHECKS *........
333C
334 IF(GAPSCALE==ZERO)GAPSCALE=ONE
335
336cE FLAG says if you have to calculate the nodal thickness in the engine
337 IF(IGAP==2) INTER_ITHKNOD=1 !defined in interface module (common_source directory)
338C
339 IF(IGAP==2)THEN
340 IF(PMAX==ZERO) PMAX=EP30
341 ELSE
342C Igap=1, Pmax is not used
343 PMAX=EP30
344 END IF
345C
346
347 ELSE
348C Igap=0, Pmax is not used
349 PMAX=EP30
350 ENDIF
351
352C.......* Storage IPARI FRIGAP *........
353 FRIGAP(19) = GAPSCALE
354 FRIGAP(16) = GAPMAX
355 FRIGAP(23) = DEPTH
356 FRIGAP(15) = PMAX
357 IPARI(52) = IFTLIM ! flag to deactivate tangential force limitation (default =1)
358
359C------------------------------------------------------------
360C Card3
361C------------------------------------------------------------
362
363C
364C.....* CHECKS *........
365C
366 IF(IGSTI==0)THEN
367 I7STIFS=1
368 IF(STMAX==ZERO)STMAX=EP30
369 FRIGAP(17) = STMIN
370 FRIGAP(18) = STMAX
371 ELSE
372 STMIN = ZERO
373 STMAX = EP30
374 END IF
375C
376 IF(PSKID==ZERO) PSKID=EP30
377 FRIGAP(35) = PSKID
378C------------------------------------------------------------
379C Card3
380C------------------------------------------------------------
381
382C
383C.....* CHECKS *........
384C
385 IF(STFAC==ZERO) THEN
386 STFAC=ONE
387 ENDIF
388 IF(IGSTI==1)STFAC=-STFAC
389C
390 IF (STOPT == ZERO) STOPT = EP30
391
392C.....* Storage IPARI FRIGAP *.......
393 IPARI(34)=IGSTI
394 FRIGAP(1)=FRIC
395 FRIGAP(2)=GAP
396 FRIGAP(3)=STARTT
397 FRIGAP(11)=STOPT
398
399C------------------------------------------------------------
400C Card4
401C------------------------------------------------------------
402 IF(VISC==ZERO) VISC=ONE
403
404C.....* Storage IPARI FRIGAP *.........
405
406 IPARI(11)=4*IBC1+2*IBC2+IBC3 + 8 *(4*IBC1M+2*IBC2M+IBC3M)
407 IPARI(22)=INACTI
408 FRIGAP(14)=VISC
409
410C BUMULT is increased for big models
411 IF(BUMULT==ZERO) THEN
412 BUMULT = BMUL0
413 IF(NUMNOD > 2500000) THEN
414 BUMULT = BMUL0*TWO
415 ELSEIF(NUMNOD > 1500000) THEN
416 BUMULT = BMUL0*THREE/TWO
417 END IF
418 END IF
419 FRIGAP(4)=BUMULT
420C------------------------------------------------------------
421C Card5 : FRICTION data
422C------------------------------------------------------------
423
424C
425C.....* CHECKS *........
426C
427 IF(FRIC == ZERO)THEN
428 IF(IFRICTH /= 0)THEN
429 FRIC = ONE
430 ENDIF
431 ENDIF
432
433 IF(XFRICTH == ZERO) XFRICTH=ONE
434C
435 IF (ALPHA==ZERO) IFQ = 0
436c
437 MODFR=2
438 IFQ = IFQ + 10
439c
440 IF (IFQ>0) THEN
441 IF (IFQ==10) XFILTR = ONE
442 IF (MOD(IFQ,10)==1) XFILTR = ALPHA
443 IF (MOD(IFQ,10)==2) XFILTR=FOUR*ATAN2(ONE,ZERO) / ALPHA
444 IF (MOD(IFQ,10)==3) XFILTR=FOUR*ATAN2(ONE,ZERO) * ALPHA
445 IF (XFILTR<ZERO) THEN
446 CALL ANCMSG(MSGID=554,
447 . MSGTYPE=MSGERROR,
448 . ANMODE=ANINFO_BLIND_1,
449 . I1=NOINT,
450 . C1=TITR,
451 . R1=ALPHA)
452.AND. ELSEIF (XFILTR>1MOD(IFQ,10)<=2) THEN
453 CALL ANCMSG(MSGID=554,
454 . MSGTYPE=MSGERROR,
455 . ANMODE=ANINFO_BLIND_1,
456 . I1=NOINT,
457 . C1=TITR,
458 . R1=ALPHA)
459 ENDIF
460 ELSE
461 XFILTR = ZERO
462 ENDIF
463C------------------------------------------------------------
464C Optional Card5 Card6 : C1...C5.C6 friction data
465C------------------------------------------------------------
466
467C.....* Storage IPARI FRIGAP *.........
468 FRIC_P(1) = C1
469 FRIC_P(2) = C2
470 FRIC_P(3) = C3
471 FRIC_P(4) = C4
472 FRIC_P(5) = C5
473 FRIC_P(6) = C6
474 IPARI(50) = IFRICTH
475 FRIGAP(34) = XFRICTH
476 IPARI(30) = MFROT
477 IPARI(31) = IFQ
478 IPARI(72) = INTFRIC
479
480C------------------------------------------------------------
481C Option Card8 :Adm = 2 adaptative mesh
482C------------------------------------------------------------
483C
484 IF(IADM==2)THEN
485 IF(NRADM==0) NRADM =3
486 IF(PADM==ZERO) PADM =ONE
487 ELSE
488 NRADM =1
489 PADM =ONE
490 ANGLADM=ZERO
491 END IF
492
493C.....* Storage IPARI FRIGAP *.........
494 CADM =COS(ANGLADM*PI/HUNDRED80)
495 KCONTACT =MAX(KCONTACT,IADM)
496 IPARI(49) =NRADM
497 FRIGAP(24)=PADM
498 FRIGAP(25)=CADM
499C------------------------------------------------------------
500C Option Card9 :Thermal input
501C------------------------------------------------------------
502 IF(INTTH > 0 ) THEN
503 INTHEAT = 1
504 ENDIF
505C
506C....* CHECKS *.............
507C
508 IF(KTHE == ZERO)THEN
509 IF(IKTHE /= 0)THEN
510 KTHE = ONE
511 CALL HM_GET_FLOATV_DIM('kthe' ,KTHE_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
512 KTHE = ONE * KTHE_UNIT
513 ENDIF
514 ENDIF
515
516 IF (XTHE == ZERO) THEN
517 !units
518 CALL HM_GET_FLOATV_DIM('a_scale_k' ,XTHE_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
519 XTHE = ONE * XTHE_UNIT
520 ENDIF
521
522 IF(IFORM /= 0)THEN
523 INTTH = 2
524 IPARI(47) = 2
525 ENDIF
526
527C.....* Storage IPARI FRIGAP *.........
528 IPARI(47) = INTTH
529 IPARI(48) = IFORM
530 IPARI(42) = IKTHE
531 FRIGAP(21 ) = TINT
532 FRIGAP(30) = XTHE
533C------------------------------------------------------------
534C Card5 : THERMAL MODELLING card2
535C------------------------------------------------------------
536
537C
538C....* CHECKS *.............
539C
540.AND. IF(ITHERM_FE == 0 INTTH > 0 ) THEN
541 INTHEAT = 0
542 IPARI(47) = 0
543 CALL ANCMSG(MSGID=702,
544 . MSGTYPE=MSGWARNING,
545 . ANMODE=ANINFO,
546 . I1=NOINT,
547 . C1=TITR,
548 . R1=DCOND,
549 . R2=DRAD)
550 ENDIF
551
552 IF(INTTH == 2 ) FTEMPVAR21 = 1
553
554 IF(FCOND ==0) DCOND = ZERO
555
556 IF(FRAD==ZERO ) DRAD = ZERO
557
558.AND..AND. IF(FCOND /= 0DCOND/=ZERODRAD==ZERO) THEN
559 DRAD = DCOND
560 CALL ANCMSG(MSGID=1810,
561 . MSGTYPE=MSGWARNING,
562 . ANMODE=ANINFO,
563 . I1=NOINT,
564 . C1=TITR,
565 . R1=DCOND,
566 . R2=DRAD)
567 ENDIF
568
569 IF(DCOND > DRAD) THEN
570 DCOND = DRAD
571 CALL ANCMSG(MSGID=1809,
572 . MSGTYPE=MSGWARNING,
573 . ANMODE=ANINFO,
574 . I1=NOINT,
575 . C1=TITR,
576 . R1=DCOND,
577 . R2=DRAD)
578 ENDIF
579
580C
581C.....* Storage IPARI FRIGAP *.........
582 FRIGAP(20) = KTHE
583 FRIGAP(31) = FRAD
584 FRIGAP(32) = DRAD
585 FRIGAP(33) = FHEAT
586 FRIGAP(36) = DCOND ! max conduction distance
587 IPARI(53) = FCOND ! function of variation of heat exchange as funct of distance
588C
589 IPARI(65) = INTKG
590C FRIGAP(10) is initialized but used only in engine for storing number of couples candidates
591 FRIGAP(10)=FLOAT(0)
592C
593C
594C------------------------------------------------------------
595C RENUMBERING OF FUNCTIONS AND SENSOR - USER TO INTERNAL ID
596C------------------------------------------------------------
597C
598 CALL INTER_DCOD_FUNCTION(NTYP,NI,IPARI,NPC1,NOM_OPT,NPC,TF)
599 CALL INTER_DCOD_SENSOR (NTYP,NI,IPARI,NOM_OPT,SENSORS)
600 CALL INTER_DCOD_FRICTION(NTYP,NI,IPARI,NOM_OPT,NOM_OPTFRIC,
601 . INTBUF_FRIC_TAB)
602
603C
604C------------------------------------------------------------
605C PRINTOUT
606C------------------------------------------------------------
607C
608 IF(IDSENS/=0) THEN
609 WRITE(IOUT,2101)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
610 . ILEV,IGSTI,STFAC,STMIN,STMAX,
611 . FRIC,IGAP,GAP,GAPMAX,GAPSCALE,IDSENS,
612 . BUMULT,INACTI,VISC,PMAX,MULTIMP,INVN,IFTLIM,
613 . PSKID
614 ELSE
615 WRITE(IOUT,2104)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
616 . ILEV,IGSTI,STFAC,STMIN,STMAX,
617 . FRIC,IGAP,GAP,GAPMAX,GAPSCALE,STARTT,STOPT,
618 . BUMULT,INACTI,VISC,PMAX,MULTIMP,INVN,IFTLIM,
619 . PSKID
620 ENDIF
621
622 IF(INTFRIC > 0 ) THEN
623 WRITE(IOUT,1527) INTFRIC
624 ELSE
625C
626 WRITE(IOUT,1520)MOD(IFQ,10), XFILTR
627C
628 IF(MFROT==0)THEN
629 IF(IFRICTH ==0 ) THEN
630 WRITE(IOUT,1524) FRIC
631 ELSE
632 WRITE(IOUT,1525) IFRICTH,XFRICTH,FRIC
633 ENDIF
634 ELSEIF(MFROT==1)THEN
635 WRITE(IOUT,1515)FRIC_P(1),FRIC_P(2),FRIC_P(3),
636 . FRIC_P(4),FRIC_P(5)
637 ELSEIF(MFROT==2)THEN
638 WRITE(IOUT,1522)FRIC,FRIC_P(1),FRIC_P(2),FRIC_P(3),
639 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
640 ELSEIF(MFROT==3)THEN
641 WRITE(IOUT,1523)FRIC_P(1),FRIC_P(2),FRIC_P(3),
642 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
643 ELSEIF(MFROT==4)THEN
644 WRITE(IOUT,1526) FRIC,FRIC_P(1),FRIC_P(2)
645 ENDIF
646 ENDIF
647C
648 IF(IDEL21/=0) THEN
649 WRITE(IOUT,'(a,i5/)')
650 . ' deletion flag on failure(1:yes) : ',IDEL21
651 IF(IDELKEEP == 1)THEN
652 WRITE(IOUT,'(a)')
653 . ' idel: DO not remove non-connected nodes from secondary surface'
654 ENDIF
655 ENDIF
656 IF(IADM/=0) THEN
657 WRITE(IOUT,*)' mesh refinement CASE of contact',
658 . ' (0:no/1:due to curvature/2:due to curvature or penetration)',
659 . ' set to ',IADM
660 IF(IADM==2)THEN
661 WRITE(IOUT,1557) NRADM,PADM,ANGLADM
662 END IF
663 ENDIF
664C
665 IF(INTTH > 0 )THEN
666 IF(IKTHE==0)THEN
667 WRITE(IOUT,2102) KTHE,TINT,FRAD,DRAD,FHEAT,IFORM,FCOND,DCOND
668 ELSE
669 WRITE(IOUT,2103) IKTHE,XTHE,KTHE,TINT,FRAD,DRAD,FHEAT,IFORM,FCOND,DCOND
670 END IF
671 END IF
672C--------------------------------------------------------------
673 IF(IS1==0)THEN
674 WRITE(IOUT,'(6x,a)')'no secondary surface input'
675 ELSEIF(IS1==1)THEN
676 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
677 ELSEIF(IS1==2)THEN
678 WRITE(IOUT,'(6x,a)')'secondary surface input by nodes'
679 ELSEIF(IS1==3)THEN
680 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
681 ELSEIF(IS1==4 )THEN
682 WRITE(IOUT,'(6x,a)')'secondary side input by bricks'
683 ELSEIF(IS1==5 )THEN
684 WRITE(IOUT,'(6x,a)')'secondary side input by solid elements'
685 ENDIF
686 IF(IS2==0)THEN
687 WRITE(IOUT,'(6x,a)')'no main surface input'
688 ELSEIF(IS2==1)THEN
689 WRITE(IOUT,'(6x,a)')'main surface input by segments'
690 ELSEIF(IS2==2)THEN
691 WRITE(IOUT,'(6x,a)')'main surface input by nodes'
692 ELSEIF(IS2==3)THEN
693 WRITE(IOUT,'(6x,a)')'main surface input by segments'
694 ELSEIF(IS2==4)THEN
695 WRITE(IOUT,'(6x,a)')'main surface refers ',
696 . 'to hyper-ellipsoidal surface'
697 ENDIF
698C
699C--------------------------------------------------------------
700C------------
701 RETURN
702 2502 FORMAT(' RUPTURE PARAMETERS '
703 . /10x,'SCAL_F . . . . . . . . . . . . . . ',1pg20.13
704 . /10x,'SCAL_DISP . . . . . . . . . . . . . ',1pg20.13
705 . /10x,'SCAL_SR . . . . . . . . . . . . . . ',1pg20.13
706 . /10x,'FILTERING COEFF . . . . . . . . . . ',1pg20.13
707 . /10x,'DEFAULT SECONDARY AREA. . . . . . . . . ',1pg20.13
708 . /10x,'DN_MAX . . . . . . . . . . . . . . ',1pg20.13
709 . /10x,'DT_MAX . . . . . . . . . . . . . . ',1pg20.13
710 . /10x,'IFUNN . . . . . . . . . . . . . . ',i10
711 . /10x,'IFUNT . . . . . . . . . . . . . . ',i10
712 . /10x,'IFUNS . . . . . . . . . . . . . . ',i10
713 . /10x,'IMOD . . . . . . . . . . . . . . ',i10
714 . /10x,'ISYM . . . . . . . . . . . . . . ',i10
715 . /10x,'IFILTR . . . . . . . . . . . . . . ',i10//)
716 1515 FORMAT(//
717 . ' FRICTION MODEL 1 (Viscous Polynomial)'/,
718 . ' MU = MUo + C1 p + C2 v + C3 pv + C4 p^2 + C5 v^2'/,
719 . ' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
720 . ' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
721 . ' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
722 . ' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
723 . ' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
724 . ' TANGENTIAL PRESSURE LIMIT. . .. . . . . .',1pg20.13/)
725 1522 FORMAT(/
726 . ' FRICTION MODEL 2 (Darmstad Law) :'/,
727 . ' MU = MUo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
728 . ' Muo. . . . . . . . . . . . . . . . . . . ',1pg20.13/,
729 . ' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
730 . ' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
731 . ' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
732 . ' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
733 . ' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
734 . ' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
735 1523 FORMAT(/
736 . ' FRICTION MODEL 3 (Renard law) :'/,
737 . ' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
738 . ' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
739 . ' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
740 . ' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
741 . ' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
742 . ' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
743 1524 FORMAT(/
744 . ' FRICTION MODEL 0 (Coulomb Law) :'/,
745 . ' FRICTION COEFFICIENT . . . . . . . . . ',1pg20.13/)
746 1525 FORMAT(//
747 . ' FRICTION MODEL 0 (Coulomb Law) :'/,
748 . ' Function for FRICTION COEFFICIENT wrt TEMPERATURE',i10/,
749 . ' Abscissa scale factor on IFUNTCF. . . . . ',1pg20.13/,
750 . ' Ordinate scale factor on IFUNTCF . . . . ',1pg20.13/)
751 1526 FORMAT(/
752 . ' EXPONENTIAL DECAY FRICTION LAW '/
753 . ' MU = c1+(MUo-c1)*exp(-c2*v)'/
754 . ' STATIC COEFFICIENT MUo . . . . . . . . . ',1pg20.13/,
755 . ' DYNAMIC COEFFICIENT C1 . . . . . . . . . ',1pg20.13/,
756 . ' EXPONENTIAL DECAY COEFFICIENT C2 . . . . ',1pg20.13/)
757C
758 1527 FORMAT(/
759 . ' INTERFACE FRICTION MODEL. . . . . . . . . ',i10)
760
761
762 1520 FORMAT(
763 . ' FRICTION FILTERING FLAG. . . . . . . . . ',i10/,
764 . ' FILTERING FACTOR . . . . . . . . . . . . ',1pg20.13)
765 1557 FORMAT(
766 .' NUMBER OF ELEMENTS WITHIN A 90 DEGREES FILLET ',i5/,
767 .' --------------------------------------------- '/,
768 .' CRITERIA FOR REFINEMENT DUE TO PENETRATION : '/,
769 .' ------------------------------------------ '/,
770 .' MINIMUM PERCENTAGE OF PENETRATION ',
771 . 1pg20.13/,
772 .' MAXIMUM ANGLE ON MAIN SIDE AT CONTACT LOCATION ',
773 . 1pg20.13//)
774 2101 FORMAT(//
775 . ' TYPE==21 PARALLEL/STAMPING ' //,
776 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
777 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
778 . ' Z DIR ',i1/,
779 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
780 . ' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
781 . ' Z DIR ',i1/,
782 . ' FORMULATION LEVEL. . . . . . . . . . . . . .',i1/,
783 . ' (0:OLD, 1:OPTIMIZED). . . . . . . .',/,
784 . ' STIFFNESS FORMULATION. . . . . . . . . . ',i1/,
785 .' 0 : STIFFNESS IS COMPUTED FROM STIFFNESS ON SECONDARY SIDE'/,
786 .' 1 : STFAC IS A STIFFNESS VALUE '/,
787 . ' STIFFNESS FACTOR OR STIFFNESS VALUE . . . . ',1pg20.13/,
788 . ' MINIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
789 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
790 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
791 . ' VARIABLE GAP FLAG . . . . . . . . . . . . . ',i5/,
792 . ' MINIMUM GAP . . . . . . . . . . . . . . . . ',1pg20.13/,
793 . ' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . . ',1pg20.13/,
794 . ' GAP SCALE FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
795 . ' START TIME/STOP TIME activated by SENSOR ID ',i10/,
796 . ' BUCKET FACTOR . . . . . . . . . . . . . . . ',1pg20.13/,
797 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . . ',i10/,
798 . ' CRITICAL DAMPING FACTOR . . . . . . . . . . ',1pg20.13/,
799 . ' MAXIMUM PRESSURE DUE TO THICKNESS VARIATION '/,
800 . ' CASE OF IGAP=2. . . . . . . ',1pg20.13/,
801 . ' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . . ',i5/,
802 . ' INVERTED NORMALS DETECTION FLAG . . . . . . ',i5/,
803 . ' TANGENTIAL FORCE LIMITATION FLAG . . . . . . ',i5/,
804 . ' MAXIMUM PRESSURE FOR SKID LINE OUTPUT ',1pg20.13)
805 2104 FORMAT(//
806 . ' TYPE==21 PARALLEL/STAMPING ' //,
807 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
808 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
809 . ' Z DIR ',i1/,
810 . ' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
811 . ' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
812 . ' Z DIR ',i1/,
813 . ' FORMULATION LEVEL. . . . . . . . . . . . . .',i1/,
814 . ' (0:OLD, 1:OPTIMIZED). . . . . . . .',/,
815 . ' STIFFNESS FORMULATION. . . . . . . . . . ',i1/,
816 .' 0 : STIFFNESS IS COMPUTED FROM STIFFNESS ON SECONDARY SIDE'/,
817 .' 1 : STFAC IS A STIFFNESS VALUE '/,
818 . ' STIFFNESS FACTOR OR STIFFNESS VALUE . . . ',1pg20.13/,
819 . ' MINIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
820 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
821 . ' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
822 . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
823 . ' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
824 . ' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . ',1pg20.13/,
825 . ' GAP SCALE FACTOR. . . . . . . . . . . . . ',1pg20.13/,
826 . ' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
827 . ' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
828 . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
829 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
830 . ' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
831 . ' MAXIMUM PRESSURE DUE TO THICKNESS VARIATION'/,
832 . ' CASE OF IGAP=2. . . . . . ',1pg20.13/,
833 . ' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . ',i5/,
834 . ' INVERTED NORMALS DETECTION FLAG . . . . . . ',i5/,
835 . ' TANGENTIAL FORCE LIMITATION FLAG . . . . . . ',i5/,
836 . ' MAXIMUM PRESSURE FOR SKID LINE OUTPUT ',1pg20.13)
837 2102 FORMAT(//
838 . ' Thermal interface ' //,
839 . ' Thermal heat exchange coefficient . . . . .',1pg20.13/,
840 . ' Interface temperature . . . . . . . . . . ',1PG20.13/,
841 . ' radiation factor . . . . . . . . . . . . . ',1PG20.13/,
842 . ' maximum distance for radiation computation.',1PG20.13/,
843 . ' frictional heat transfer. . . . . . . . . .',1PG20.13/,
844 . ' formulation choice : . . . . . . . . . . . ',I10,/,
845 . ' 0 : heat transfer between secondary side',/,
846 . ' and constant temperature in interface',/,
847 . ' 1 : heat exchange between pieces in contact'/
848 . ' Function for thermal heat exchange coefficient wrt distance',I10/,
849 . ' maximum distance for conductive heat exchange',1PG20.13)
850 2103 FORMAT(//
851 . ' thermal interface ' //,
852 . ' function for thermal heat exchange coefficient wrt contact pressure',I10/,
853 . ' abscissa scale factor on ifuntck. . . . . ',1PG20.13/,
854 . ' ordinate scale factor on ifuntck . . . . ',1PG20.13/,
855 . ' interface temperature . . . . . . . . . . ',1PG20.13/,
856 . ' radiation factor . . . . . . . . . . . . . ',1PG20.13/,
857 . ' maximum distance for radiation computation.',1PG20.13/,
858 . ' frictional heat generation . . . . . . . . ',1PG20.13/,
859 . ' formulation choice : . . . . . . . . . . . ',I10,/,
860 . ' 0 : heat transfer between secondary side',/,
861 . ' and constant temperature in interface',/,
862 . ' 1 : heat exchange between pieces in contact'/
863 . ' function for thermal heat exchange coefficient wrt distance',I10/,
864 . ' maximum distance for conductive heat exchange',1PG20.13)
865C
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
integer, parameter ncharkey
integer nsubmod
subroutine radiation(ibcr, fradia, npc, tf, x, temp, nsensor, sensor_tab, fthe, iad, fthesky, python, glob_therm)
Definition radiation.F:38
int main(int argc, char *argv[])