OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_type25.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!|| hm_read_inter_type25 ../starter/source/interfaces/int25/hm_read_inter_type25.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_inter_struct ../starter/source/interfaces/reader/hm_read_inter_struct.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| definter ../starter/source/interfaces/interf1/definter.F
30!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
31!|| hm_get_floatv_dim ../starter/source/devtools/hm_reader/hm_get_floatv_dim.F
32!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
33!|| inter_dcod_friction ../starter/source/interfaces/reader/inter_dcod_friction.F
34!|| inter_dcod_function ../starter/source/interfaces/reader/inter_dcod_function.F
35!|| inter_dcod_sensor ../starter/source/interfaces/reader/inter_dcod_sensor.F
36!|| ngr2usr ../starter/source/system/nintrr.F
37!||--- uses -----------------------------------------------------
38!|| message_mod ../starter/share/message_module/message_mod.F
39!|| submodel_mod ../starter/share/modules1/submodel_mod.F
40!||====================================================================
42 1 IPARI ,STFAC ,FRIGAP ,NOINT ,NI ,
43 2 IGRNOD ,IGRSURF ,XFILTR ,FRIC_P ,DEF_INTER ,
44 3 SENSORS ,NOM_OPT ,UNITAB ,LSUBMODEL ,TITR ,
45 4 NOM_OPTFRIC ,INTBUF_FRIC_TAB ,NPC ,NPC1 ,TF ,
46 5 PARAMETERS ,NPARI ,NPARIR ,SNPC ,SNPC1 ,
47 6 NPTS ,ITHERM_FE ,INTHEAT )
48C============================================================================
49C
50C-----------------------------------------------
51C M o d u l e s
52C-----------------------------------------------
53 USE message_mod
54 USE intbuf_fric_mod
55 USE groupdef_mod
57 USE unitab_mod
58 USE sensor_mod
59 USE intbufdef_mod
62C-----------------------------------------------
63C I m p l i c i t T y p e s
64C-----------------------------------------------
65#include "implicit_f.inc"
66C-----------------------------------------------
67C C o m m o n B l o c k s
68C-----------------------------------------------
69#include "scr17_c.inc"
70#include "scr06_c.inc"
71#include "com01_c.inc"
72#include "com04_c.inc"
73#include "units_c.inc"
74#include "scr12_c.inc"
75C-----------------------------------------------
76C D u m m y A r g u m e n t s
77C-----------------------------------------------
78 INTEGER,INTENT(IN) :: NPARI,NPARIR,SNPC,SNPC1,NPTS !< array sizes
79 INTEGER NOM_OPT(LNOPT1,*), NOM_OPTFRIC(LNOPT1,*)
80 INTEGER ISU1,ISU2,NI
81 INTEGER IPARI(NPARI), DEF_INTER(100),NPC(SNPC),NPC1(SNPC1)
82 my_real STFAC,XFILTR
83 my_real FRIGAP(NPARIR),FRIC_P(10),TF(NPTS)
84 CHARACTER(LEN=NCHARTITLE)::TITR
85 TYPE(intbuf_fric_struct_) INTBUF_FRIC_TAB(*)
86 TYPE(submodel_data), INTENT(IN) :: LSUBMODEL(NSUBMOD)
87 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
88 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
89C-----------------------------------------------
90 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
91 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
92 TYPE (PARAMETERS_) ,INTENT(INOUT):: PARAMETERS
93C-----------------------------------------------
94C L o c a l V a r i a b l e s
95C-----------------------------------------------
96 INTEGER,INTENT(IN) :: ITHERM_FE
97 INTEGER,INTENT(INOUT) :: INTHEAT
98 INTEGER I,IBC1, IBC2, IBC3, IBUC, NOINT, NTYP,INACTI,
99 . IBC1M, IBC2M, IBC3M, IGSTI, IVIS2,IS1, IS2,ILEV,
100 . IGAP,MULTIMP,MFROT,IFQ,IBAG,MODFR,ISYM,IEDGE,NOD1,
101 . IDEL25,IGAP0,FLAGREMNOD,IDSENS,IDELKEEP,INTKG,
102 . irem25i2,iprint,intfric,multimpe,iassign,isharp,
103 . ithk,notused,intth,iform,ikthe,fcond,ifricth,npref,
104 . ipstif
105 my_real
106 . fric,gap,startt,bumult,stopt,c1,c2,c3,c4,c5,c6,alpha,
107 . gapscale,stmin,stmax,edg_angl,visc,viscf,percent_size,
108 . gapmax_s,gapmax_m,penmax,penmin,sigmaxadh,viscadhfact,
109 . viscfluid,pmax,kthe,tint,xthe,frad,drad,fheats,
110 . fheatm,dcond,xthe_unit,tpfit,stfacm,dtstif,thk_s,thk_m,
111 . thk_s_scale,thk_m_scale
112 CHARACTER(LEN=NCHARKEY) :: KEY1
113 CHARACTER(LEN=NCHARFIELD) ::BCFLAG
114!
115 INTEGER, DIMENSION(:), POINTER :: INGR2USR
116 LOGICAL IS_AVAILABLE
117C-----------------------------------------------
118C E x t e r n a l F u n c t i o n s
119C-----------------------------------------------
120 INTEGER NGR2USR
121C-----------------------------------------------
122C=======================================================================
123C READING PENALTY INTERFACE /INTER/TYPE25
124C=======================================================================
125
126C Initializations
127 is1=0
128 is2=0
129 ibc1=0
130 ibc2=0
131 ibc3=0
132 ibc1m=0
133 ibc2m=0
134 ibc3m=0
135 ibuc=0
136 mfrot=0
137 ifq=0
138 ibag=0
139 igsti = 0
140 ilev=0
141 idsens = 0
142 idelkeep=0
143 intfric = 0
144 nod1 = 0
145 intkg = 0
146 flagremnod = 0
147 multimp = 0
148 irem25i2 = 0
149 igap0 = 0
150 intth = 0
151 ikthe = 0
152 iform = 0
153 fcond = 0
154 ifricth = 0
155 ipstif = 0
156
157C-------for the moment
158C IGSTI = 0
159 multimpe = 0
160C
161 stopt=ep30
162 inacti = 0
163 viscf = zero
164 fric = zero
165 gap = zero
166 gapscale = zero
167 startt = zero
168 visc = zero
169 xfiltr = zero
170 DO i = 1, 10
171 fric_p(i) = zero
172 ENDDO
173 c1=zero
174 c2=zero
175 c3=zero
176 c4=zero
177 c5=zero
178 c6=zero
179
180 percent_size = zero
181 edg_angl = zero
182 gapmax_s = zero
183 gapmax_m = zero
184 penmax = zero
185 penmin = zero
186 viscfluid = zero
187 sigmaxadh = zero
188 viscadhfact = zero
189 kthe = zero
190 xthe = zero
191 tint = zero
192 frad = zero
193 drad = zero
194 fheats= zero
195 fheatm= zero
196 dcond = zero
197 stfacm= zero
198 dtstif= zero
199 thk_s = zero
200 thk_m = zero
201 thk_s_scale = zero
202 thk_m_scale = zero
203C
204 iassign = 1
205C
206 ntyp = 25
207 ipari(15)=noint
208 ipari(7)=ntyp
209C
210 ithk = 0
211 notused = 0
212 pmax = ep30
213C
214 is_available = .false.
215C--------------------------------------------------
216C EXTRACT DATAS (INTEGER VALUES)
217C--------------------------------------------------
218C
219 CALL hm_get_intv('secondaryentityids',isu1,is_available,lsubmodel)
220 CALL hm_get_intv('mainentityids',isu2,is_available,lsubmodel)
221 CALL hm_get_intv('Istf',igsti,is_available,lsubmodel)
222 CALL hm_get_intv('Ithe',intth,is_available,lsubmodel)
223 CALL hm_get_intv('IGAP',igap,is_available,lsubmodel)
224 CALL hm_get_intv('TYPE24_Idel',idel25,is_available,lsubmodel)
225 CALL hm_get_intv('Irem_i2',irem25i2,is_available,lsubmodel)
226 CALL hm_get_intv('TYPE24_Iedge',iedge,is_available,lsubmodel)
227 CALL hm_get_intv('IPSTIF',ipstif,is_available,lsubmodel)
228C
229 CALL hm_get_intv('GRNOD_ID',nod1,is_available,lsubmodel)
230C
231 CALL hm_get_intv('Igap0',igap0,is_available,lsubmodel)
232 CALL hm_get_intv('Ishape',isharp,is_available,lsubmodel)
233C
234 CALL hm_get_intv('Deactivate_X_BC',ibc1,is_available,lsubmodel)
235 CALL hm_get_intv('Deactivate_Y_BC',ibc2,is_available,lsubmodel)
236 CALL hm_get_intv('Deactivate_Z_BC',ibc3,is_available,lsubmodel)
237 CALL hm_get_intv('IVIS2',ivis2,is_available,lsubmodel)
238 CALL hm_get_intv('INACTIV',inacti,is_available,lsubmodel)
239 CALL hm_get_intv('Ithick',ithk,is_available,lsubmodel)
240C
241 CALL hm_get_intv('Ifric',mfrot,is_available,lsubmodel)
242 CALL hm_get_intv('Ifiltr',ifq,is_available,lsubmodel)
243 CALL hm_get_intv('ISENSOR',idsens,is_available,lsubmodel)
244 CALL hm_get_intv('Fric_ID',intfric,is_available,lsubmodel)
245C
246 IF(intth > 0 ) THEN
247 CALL hm_get_intv('IFORM1',iform,is_available,lsubmodel)
248 CALL hm_get_intv('fct_ID_k',ikthe,is_available,lsubmodel)
249 CALL hm_get_intv('F_COND',fcond,is_available,lsubmodel)
250 CALL hm_get_intv('FRIC_FUN',ifricth,is_available,lsubmodel)
251 ENDIF
252C
253C--------------------------------------------------
254C EXTRACT DATAS (REAL VALUES)
255C--------------------------------------------------
256 CALL hm_get_floatv('PrMesh_Size',percent_size,is_available,lsubmodel,unitab)
257 CALL hm_get_floatv('Gap_scale',gapscale,is_available,lsubmodel,unitab)
258 CALL hm_get_floatv('GAP1',gapmax_s,is_available,lsubmodel,unitab)
259 CALL hm_get_floatv('GAP2',gapmax_m,is_available,lsubmodel,unitab)
260C
261 CALL hm_get_floatv('STMIN',stmin,is_available,lsubmodel,unitab)
262 CALL hm_get_floatv('STMAX',stmax,is_available,lsubmodel,unitab)
263 CALL hm_get_floatv('TYPE24_Edge_Angle',edg_angl,is_available,lsubmodel,unitab)
264 CALL hm_get_floatv('STFAC_MDT',stfacm,is_available,lsubmodel,unitab)
265C
266 CALL hm_get_floatv('STFAC',stfac,is_available,lsubmodel,unitab)
267 CALL hm_get_floatv('FRIC',fric,is_available,lsubmodel,unitab)
268 CALL hm_get_floatv('TSTART',startt,is_available,lsubmodel,unitab)
269 CALL hm_get_floatv('TSTOP',stopt,is_available,lsubmodel,unitab)
270C
271 CALL hm_get_floatv('STIFF_DC',visc,is_available,lsubmodel,unitab)
272 CALL hm_get_floatv('Pmax',pmax,is_available,lsubmodel,unitab)
273 CALL hm_get_floatv('Tpressfit',tpfit,is_available,lsubmodel,unitab)
274C
275 CALL hm_get_floatv('Xfreq',alpha,is_available,lsubmodel,unitab)
276 CALL hm_get_floatv('DTSTIF',dtstif,is_available,lsubmodel,unitab)
277C
278 IF (mfrot>0) THEN
279 CALL hm_get_floatv('C1',c1,is_available,lsubmodel,unitab)
280 CALL hm_get_floatv('C2',c2,is_available,lsubmodel,unitab)
281 CALL hm_get_floatv('C3',c3,is_available,lsubmodel,unitab)
282 CALL hm_get_floatv('C4',c4,is_available,lsubmodel,unitab)
283 CALL hm_get_floatv('C5',c5,is_available,lsubmodel,unitab)
284 ENDIF
285 IF (mfrot>1) THEN
286 CALL hm_get_floatv('C6',c6,is_available,lsubmodel,unitab)
287 ENDIF
288 IF (ivis2>0) THEN
289 CALL hm_get_floatv('C1',c1,is_available,lsubmodel,unitab)
290 CALL hm_get_floatv('C2',c2,is_available,lsubmodel,unitab)
291 CALL hm_get_floatv('C3',c3,is_available,lsubmodel,unitab)
292 CALL hm_get_floatv('C4',c4,is_available,lsubmodel,unitab)
293 CALL hm_get_floatv('C5',c5,is_available,lsubmodel,unitab)
294 ENDIF
295 IF(ivis2==-1) THEN
296 interadhesion = 1
297 CALL hm_get_floatv('ViscFluid',viscfluid,is_available,lsubmodel,unitab)
298 CALL hm_get_floatv('SigMaxAdh',sigmaxadh,is_available,lsubmodel,unitab)
299 CALL hm_get_floatv('ViscAdhFact',viscadhfact,is_available,lsubmodel,unitab)
300 ENDIF
301C
302 IF(intth > 0 ) THEN
303 CALL hm_get_floatv('Kthe',kthe,is_available,lsubmodel,unitab)
304 CALL hm_get_floatv('T_Initial',tint,is_available,lsubmodel,unitab)
305 CALL hm_get_floatv('Crx',xthe,is_available,lsubmodel,unitab)
306 CALL hm_get_floatv('F_RAD',frad,is_available,lsubmodel,unitab)
307 CALL hm_get_floatv('D_RAD',drad,is_available,lsubmodel,unitab)
308 CALL hm_get_floatv('Fmax',fheats,is_available,lsubmodel,unitab)
309 CALL hm_get_floatv('HEAT_AL',fheatm,is_available,lsubmodel,unitab)
310 CALL hm_get_floatv('D_COND',dcond,is_available,lsubmodel,unitab)
311 ENDIF
312C
313 IF(igap == 5 ) THEN
314 CALL hm_get_floatv('THICK_S',thk_s,is_available,lsubmodel,unitab)
315 CALL hm_get_floatv('THICK_M',thk_m,is_available,lsubmodel,unitab)
316 CALL hm_get_floatv('THICK_S_SCALE',thk_s_scale,is_available,lsubmodel,unitab)
317 CALL hm_get_floatv('THICK_M_SCALE',thk_m_scale,is_available,lsubmodel,unitab)
318 ENDIF
319C--------------------------------------------------
320C DEFAULT VALUES DEFINITION
321C--------------------------------------------------
322
323 iprint = 0
324
325 key1='IGSTI'
326 CALL definter(key1 ,igsti ,iassign ,iprint ,
327 . ntyp ,def_inter)
328C
329 key1='IGAP'
330 CALL definter(key1 ,igap ,iassign ,iprint ,
331 . ntyp ,def_inter)
332C
333 key1='irem25i2'
334 CALL DEFINTER(KEY1 ,IREM25I2,IASSIGN ,IPRINT ,
335 . NTYP ,DEF_INTER)
336C
337 KEY1='iedge'
338 CALL DEFINTER(KEY1 ,IEDGE ,IASSIGN ,IPRINT ,
339 . NTYP ,DEF_INTER)
340C
341 KEY1='ibag'
342 CALL DEFINTER(KEY1 ,IBAG ,IASSIGN ,IPRINT ,
343 . NTYP ,DEF_INTER)
344C
345 KEY1='idel25'
346 CALL DEFINTER(KEY1 ,IDEL25 ,IASSIGN ,IPRINT ,
347 . NTYP ,DEF_INTER)
348
349 KEY1='igap0'
350 CALL DEFINTER(KEY1 ,IGAP0 ,IASSIGN ,IPRINT ,
351 . NTYP ,DEF_INTER)
352C
353 KEY1='isharp'
354 CALL DEFINTER(KEY1 ,ISHARP ,IASSIGN ,IPRINT ,
355 . NTYP ,DEF_INTER)
356 KEY1='inacti'
357 CALL DEFINTER(KEY1 ,INACTI ,IASSIGN ,IPRINT ,
358 . NTYP ,DEF_INTER)
359C
360 KEY1='ithk'
361 CALL DEFINTER(KEY1 ,ITHK ,IASSIGN ,IPRINT ,
362 . NTYP ,DEF_INTER)
363C
364C--------------------------------------------------
365C CHECKS And Storage IPARI FRIGAP
366C--------------------------------------------------
367C
368C
369C....* Card1 :flags *.............
370C
371 IF(IGAP==2) THEN
372 FLAGREMNOD = 2
373 ENDIF
374 IF (FLAGREMNOD == 0) FLAGREMNOD = 1
375
376C.....* Storage IPARI FRIGAP *........
377
378 IPARI(63) = FLAGREMNOD
379 IPARI(83) = IREM25I2
380C IPARI(83) is used temporarily before determined only by FLAGREMNOD
381 IF (IREM25I2 /= 1) IPARI(83)=0
382
383 IF(IGAP==2) THEN
384 IPARI(21)=1
385 ELSE
386 IPARI(21)=IGAP
387 ENDIF
388
389C
390C....* Card2 :Gaps *.............
391C
392C
393C------ILEV =1 : ISU1>0,ISU2=0; IS3>=0
394C 2 : ISU1>0,ISU2>0; IS3>=0
395C 3 : ISU1=0,ISU2>0;IS3>0
396
397.AND. IF(ISU1 /= 0 ISU2 == 0)THEN
398 ILEV = 1
399.AND. ELSEIF(ISU1 /= 0 ISU2 /= 0)THEN
400 ILEV = 2
401 IF (ISU1 == ISU2) THEN
402 ILEV = 1
403 ISU2 = 0
404 CALL ANCMSG(MSGID=1022,
405 . MSGTYPE=MSGWARNING,
406 . ANMODE=ANINFO,
407 . I1=NOINT,
408 . C1=TITR)
409 END IF
410.AND..AND. ELSEIF(ISU1 == 0 ISU2 /= 0 NOD1 /= 0) THEN
411 ILEV = 3
412 ELSE
413 IF(ISU2 == 0) THEN
414 CALL ANCMSG(MSGID=119,
415 . ANMODE=ANINFO,
416 . MSGTYPE=MSGERROR,
417 . I1=NOINT,
418 . C1=TITR)
419 ELSEIF (NOD1 == 0) THEN
420 CALL ANCMSG(MSGID=1001,
421 . ANMODE=ANINFO,
422 . MSGTYPE=MSGERROR,
423 . I1=NOINT,
424 . C1=TITR)
425 ENDIF
426 IS1=0
427 IS2=0
428 END IF
429
430 ISYM = 1
431
432 SELECT CASE (ILEV)
433 CASE(1)
434 INGR2USR => IGRSURF(1:NSURF)%ID
435 ISU1=NGR2USR(ISU1,INGR2USR,NSURF)
436 ISU2=ISU1
437 IS1=-1
438 IS2=-3
439 CASE(2)
440C----------------if we copy int7--
441 IS1 = 0
442 INGR2USR => IGRSURF(1:NSURF)%ID
443 IS1=NGR2USR(ISU1,INGR2USR,NSURF)
444 IF (IS1==0) THEN
445 CALL ANCMSG(MSGID=1000,
446 . ANMODE=ANINFO_BLIND_1,
447 . MSGTYPE=MSGERROR,
448 . I1=NOINT,
449 . C1=TITR)
450 ELSE
451 ISU1=IS1
452 END IF
453 INGR2USR => IGRSURF(1:NSURF)%ID
454 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
455 IS1=-1
456 IS2=-1
457 CASE(3)
458 INGR2USR => IGRSURF(1:NSURF)%ID
459 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
460 IS1=-2
461 IS2=-1
462 END SELECT
463 INGR2USR => IGRNOD(1:NGRNOD)%ID
464 IF(NOD1 /= 0) NOD1=NGR2USR(NOD1,INGR2USR,NGRNOD)
465
466 IPARI(13)=IS1*10+IS2
467 IPARI(45)=ISU1
468 IPARI(46)=ISU2
469
470 IPARI(26)=NOD1
471 IPARI(43)=ISYM
472 IPARI(58)=IEDGE
473 IF(IEDGE == 1000) IPARI(58)=0
474
475C-------tempo: Isurf <- ILEV=IPARI(20) -----
476 IPARI(20)=ILEV
477.AND..OR. IF (INACTI==-1(IGSTI==0IGSTI==1000)) IGSTI = 4
478 IPARI(34)=IGSTI
479
480C
481C....* Card4 *.............
482C
483C
484 IF(IGSTI>1)THEN
485 I7STIFS=1
486 IF(STMAX==ZERO)STMAX=EP30
487 ELSE
488 IF(STMAX==ZERO)STMAX=EP30
489 END IF
490
491
492C----------- GAPMAX->GAPMAX_S: EP30
493C-----------IGAP0: used only for starter;sharing places w/ int20
494 IPARI(53)=IGAP0
495c FRIGAP(16) = EP30
496 FRIGAP(17) = STMIN
497 FRIGAP(18) = STMAX
498C
499C-------- default EDG_ANGL=135
500.AND. IF(IEDGE /= 0 EDG_ANGL==ZERO)
501 + EDG_ANGL=HUNDRED+THIRTY+FIVE
502 FRIGAP(26) = COS((HUNDRED80-EDG_ANGL)*PI/HUNDRED80)
503
504.AND. IF(IGAP == 3 PERCENT_SIZE == ZERO) PERCENT_SIZE = FOUR*EM01
505 FRIGAP(28) = PERCENT_SIZE
506
507 IF(GAPSCALE==ZERO)GAPSCALE=ONE
508 FRIGAP(13) = GAPSCALE ! historically stored, get modified in I25STI3 (GAPMIN)
509 FRIGAP(45) = GAPSCALE
510
511
512 IF(GAPMAX_S==ZERO)GAPMAX_S=EP30
513 IF(GAPMAX_M==ZERO)GAPMAX_M=EP30
514C IF(PENMAX==ZERO)PENMAX=EP30
515 IF(PENMIN==ZERO)PENMIN=EM8
516 FRIGAP(35) = GAPMAX_S
517 FRIGAP(36) = GAPMAX_M
518 FRIGAP(37) = PENMAX
519 FRIGAP(38) = PENMIN
520C
521C....* Card4 *.............
522C
523C
524C
525 GAP=ZERO
526 IF (STOPT == ZERO) STOPT = EP30
527C
528 FRIGAP(1)=FRIC
529 FRIGAP(2)=GAP
530 FRIGAP(3)=STARTT
531 FRIGAP(11)=STOPT
532
533C
534C....* Card5 *.............
535C
536C ----- presfit
537.AND. IF (INACTI==-1IIMPLICIT==0) THEN
538 NPREF=10000
539 IPARI(40) = NPREF
540 ELSE
541 TPFIT=ZERO
542 END IF
543
544C Hidden flag no more read using HM reader
545c IF (BCFLAGM(LFIELD-2:LFIELD-2)== '1') IBC1M = 1
546c IF (BCFLAGM(LFIELD-1:LFIELD-1)== '1') IBC2M = 1
547c IF (BCFLAGM(LFIELD :LFIELD )== '1') IBC3M = 1
548
549.AND. IF (IIMPLICIT>0INACTI==0) INACTI=-1
550.AND..AND. IF (INACTI/=0INACTI/=-1INACTI/=5) THEN
551 IF(INACTI>0)THEN
552 CALL ANCMSG(MSGID=1559,
553 . MSGTYPE=MSGWARNING,
554 . ANMODE=ANINFO_BLIND_1,
555 . I1=NOINT,I2=INACTI,
556 . C1=TITR)
557 INACTI=5
558 ELSE
559 CALL ANCMSG(MSGID=1558,
560 . MSGTYPE=MSGWARNING,
561 . ANMODE=ANINFO_BLIND_1,
562 . I1=NOINT,I2=INACTI,
563 . C1=TITR)
564 INACTI = 0
565 END IF
566 END IF
567 IF(STFAC==0.) THEN
568 STFAC=ONE
569 ENDIF
570 IF(IGSTI==1)STFAC=-STFAC
571C------no use of VISCF
572 VISCF=ZERO
573c FRIGAP(15)=VISCF**2
574C-------used for TPFIT
575 FRIGAP(15)=TPFIT
576
577 IF(VISC==ZERO)THEN
578 IF(IVIS2==5)THEN
579 VISC=ONE
580 ELSE
581 VISC=FIVEEM2
582 ENDIF
583 ENDIF
584 FRIGAP(14)=VISC
585C-------MAIN side gap changes with thickness change
586 IF(ITHK==1) INTER_ITHKNOD=1 !defined in interface module (common_source directory)
587C
588C-------* Storage IPARI FRIGAP *----------------------------
589C
590C default w=> harmonic mass, IVIS2=6 <=> SECONDARY node mass
591C IVIS2=-1 interface adhesion
592 IF(IVIS2==0)IVIS2=1
593 IF (IDEL25 < 0) THEN
594 IDELKEEP=1
595 IDEL25=ABS(IDEL25)
596 END IF
597 IPARI(61)=IDELKEEP
598 IF(IDEL25>2) IDEL25 = 0
599 IPARI(17)=IDEL25
600C
601.AND. IF(IGAP==3ISHARP==1) THEN
602 CALL ANCMSG(MSGID=1619,
603 . MSGTYPE=MSGWARNING,
604 . ANMODE=ANINFO_BLIND_1,
605 . I1=NOINT,I2=ISHARP,I3=IGAP,
606 . C1=TITR)
607 ISHARP=2
608 END IF
609 IPARI(84)=ISHARP
610C
611 IPARI(14)=IVIS2
612 IPARI(11)=4*IBC1+2*IBC2+IBC3 + 8 *(4*IBC1M+2*IBC2M+IBC3M)
613
614 IPARI(22)=INACTI
615 IPARI(91)=ITHK
616
617C------------remove BUMULT
618 BUMULT=ZERO
619
620 IF(BUMULT==ZERO) THEN
621 BUMULT = BMUL0
622C bmult increases for very large models and interface 7 or 20
623
624 IF(NUMNOD > 2500000) THEN
625 BUMULT = BMUL0*TWO
626 ELSEIF(NUMNOD > 1500000) THEN
627 BUMULT = BMUL0*THREE/TWO
628 END IF
629 END IF
630 FRIGAP(4)=BUMULT
631
632C---------
633.OR. IF(IPSTIF >0 IGSTI==7) IPARI(97) = 1
634.AND. IF(IGSTI==7IPSTIF ==0) IPSTIF = 1
635 IPARI(98) = IPSTIF
636.AND. IF(STFACM == ZEROIPARI(97) > 0) STFACM = EM01
637 IF(IPARI(97) > 0) THEN
638 FRIGAP(48) = DTSTIF
639 PARAMETERS%ISTIF_DT = 1
640 FRIGAP(47) = STFACM
641 ELSE
642 DTSTIF = ZERO
643 STFACM = ZERO
644 ENDIF
645
646
647
648C
649C....* Card6 : Friction *.............
650C
651C IF (MFROT/=0.AND.VISCF==0.0) VISCF=ONE
652 MODFR = 2
653 IF (ALPHA==0.) IFQ = 0
654 IF (MODFR==0) MODFR = 1
655.AND. IF (MODFR==2IFQ<10) IFQ = IFQ + 10
656C IF(MODFR==2)VISCF=ZERO
657 IF (IFQ>0) THEN
658 IF (IFQ==10) XFILTR = ONE
659 IF (MOD(IFQ,10)==1) XFILTR = ALPHA
660 IF (MOD(IFQ,10)==2) XFILTR=FOUR*ATAN2(ONE,ZERO) / ALPHA
661 IF (MOD(IFQ,10)==3) XFILTR=FOUR*ATAN2(ONE,ZERO) * ALPHA
662 IF (XFILTR<ZERO) THEN
663 CALL ANCMSG(MSGID=554,
664 . MSGTYPE=MSGERROR,
665 . ANMODE=ANINFO_BLIND_1,
666 . I1=NOINT,
667 . C1=TITR,
668 . R1=ALPHA)
669.AND. ELSEIF (XFILTR>1MOD(IFQ,10)<=2) THEN
670 CALL ANCMSG(MSGID=554,
671 . MSGTYPE=MSGERROR,
672 . ANMODE=ANINFO_BLIND_1,
673 . I1=NOINT,
674 . C1=TITR,
675 . R1=ALPHA)
676 ENDIF
677 ELSE
678 XFILTR = ZERO
679 ENDIF
680
681.AND..AND. IF (IBAG/=0NVOLU==0 IALELAG == 0) THEN
682 CALL ANCMSG(MSGID=614,
683 . MSGTYPE=MSGWARNING,
684 . ANMODE=ANINFO_BLIND_2,
685 . I1=NOINT,
686 . C1=TITR)
687 IBAG=0
688 ENDIF
689 INTBAG = MAX(INTBAG,IBAG)
690 KCONTACT =MAX(KCONTACT,IBAG)
691
692C
693 IPARI(30) = MFROT
694 IPARI(31) = IFQ
695 IPARI(32) = IBAG
696 IPARI(72) = INTFRIC
697 IPARI(64) = IDSENS
698C
699C....* OPTIONAL Card7 :C1...C6 friction data *.............
700C
701
702 FRIC_P(1) = C1
703 FRIC_P(2) = C2
704 FRIC_P(3) = C3
705 FRIC_P(4) = C4
706 FRIC_P(5) = C5
707 FRIC_P(6) = C6
708
709C
710C....* Option Card8 :Adhesion data *.............
711C
712 FRIGAP(42) = VISCFLUID
713 FRIGAP(43) = SIGMAXADH
714 FRIGAP(44) = VISCADHFACT
715C-----
716 IPARI(12)=IBUC
717 IPARI(65) = INTKG
718
719C FRIGAP(10) is initialized but used only in engine for storing number of couples candidates
720 FRIGAP(10)=FLOAT(0)
721
722C TO STORE THE FLAG FOR DEACTIVATION OF INITIAL PENETRATIONS
723C (0 = NOTHING , 1 = NODES , 2 = FACETS )
724 MULTIMP = 4
725 IPARI(23)=MULTIMP
726
727 IF(IEDGE /= 0) MULTIMPE = 4
728 IPARI(87)=MULTIMPE ! MAIN shell edges
729 IPARI(89)=MULTIMPE ! MAIN solid edges
730C
731C
732C.....* Card7 : Thermal input *.........
733C
734
735.AND. IF(INTTH > 0KTHE == ZERO)THEN
736 IF(IKTHE /= 0)THEN
737 KTHE = ONE
738 ENDIF
739 ENDIF
740C
741.AND. IF (INTTH > 0XTHE == ZERO) THEN
742 !units
743 CALL HM_GET_FLOATV_DIM('crx' ,XTHE_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
744 XTHE = ONE * XTHE_UNIT
745 ENDIF
746C
747 IF(INTTH > 0 ) INTHEAT = 1
748 IPARI(47) = INTTH
749
750.AND. IF(ITHERM_FE == 0 INTTH > 0 ) THEN
751 INTHEAT = 0
752 IPARI(47) = 0
753 CALL ANCMSG(MSGID=702,
754 . MSGTYPE=MSGWARNING,
755 . ANMODE=ANINFO,
756 . I1=NOINT,
757 . C1=TITR)
758 ENDIF
759C
760 IF(INTTH > 0 ) THEN
761 IF(FHEATS+FHEATM > 1) THEN
762 CALL ANCMSG(MSGID=1064,
763 . MSGTYPE=MSGWARNING,
764 . ANMODE=ANINFO,
765 . I1=NOINT,
766 . C1=TITR,
767 . R1=FHEATS,
768 . R2=FHEATM)
769 ENDIF
770 ENDIF
771C
772 IF(FCOND ==0) DCOND = ZERO
773
774 IF(FRAD==ZERO ) DRAD = ZERO
775
776.AND..AND. IF(FCOND /= 0DCOND/=ZERODRAD==ZERO) THEN
777 DRAD = DCOND
778 CALL ANCMSG(MSGID=1810,
779 . MSGTYPE=MSGWARNING,
780 . ANMODE=ANINFO,
781 . I1=NOINT,
782 . C1=TITR,
783 . R1=DCOND,
784 . R2=DRAD)
785 ENDIF
786
787 IF(DCOND > DRAD) THEN
788 DCOND = DRAD
789 CALL ANCMSG(MSGID=1809,
790 . MSGTYPE=MSGWARNING,
791 . ANMODE=ANINFO,
792 . I1=NOINT,
793 . C1=TITR,
794 . R1=DCOND,
795 . R2=DRAD)
796 ENDIF
797
798.AND. IF(INTTH > 0FRIC == ZERO)THEN
799 IF(IFRICTH /= 0)THEN
800 FRIC = ONE
801 ENDIF
802 ENDIF
803
804 IF(IGAP == 5)THEN
805 IF(THK_S_SCALE == ZERO) THK_S_SCALE = ONE
806 IF(THK_M_SCALE == ZERO) THK_M_SCALE = ONE
807 ENDIF
808
809
810 FRIGAP(20) = KTHE
811 FRIGAP(21 ) = FHEATS
812 FRIGAP(22 ) = TINT
813 FRIGAP(41 ) = FHEATM
814 FRIGAP(31 ) = FRAD
815 FRIGAP(32 ) = DRAD
816 IPARI(48) = IFORM
817 IPARI(92) = IKTHE
818 FRIGAP(33) = XTHE
819 IPARI(93) = FCOND
820 FRIGAP(34) = DCOND
821 IPARI(50) = IFRICTH
822 FRIGAP(49) = THK_S
823 FRIGAP(50 ) = THK_M
824 FRIGAP(51 ) = THK_S_SCALE
825 FRIGAP(52 ) = THK_M_SCALE
826.AND. IF(IGAP == 5THK_S == ZERO) THEN
827 CALL ANCMSG(MSGID=3105,
828 . MSGTYPE=MSGWARNING,
829 . ANMODE=ANINFO,
830 . I1=NOINT,
831 . C1=TITR,
832 . C2='secondary')
833 ENDIF
834.AND. IF(IGAP == 5THK_M == ZERO) THEN
835 CALL ANCMSG(MSGID=3105,
836 . MSGTYPE=MSGWARNING,
837 . ANMODE=ANINFO,
838 . I1=NOINT,
839 . C1=TITR,
840 . C2='main')
841 ENDIF
842
843C
844C------------------------------------------------------------
845C RENUMBERING OF FUNCTIONS AND SENSOR - USER TO INTERNAL ID
846C------------------------------------------------------------
847C
848 CALL INTER_DCOD_FUNCTION(NTYP,NI,IPARI,NPC1,NOM_OPT,NPC,TF)
849 CALL INTER_DCOD_SENSOR (NTYP,NI,IPARI,NOM_OPT,SENSORS)
850 CALL INTER_DCOD_FRICTION(NTYP,NI,IPARI,NOM_OPT,NOM_OPTFRIC,
851 . INTBUF_FRIC_TAB)
852
853C
854C------------------------------------------------------------
855C PRINTOUT
856C------------------------------------------------------------
857
858C........* PRINT DEFAULT VALUES *.....................
859C
860 IPRINT = 1
861C
862 KEY1='igsti'
863 CALL DEFINTER(KEY1 ,IGSTI ,IASSIGN ,IPRINT ,
864 . NTYP ,DEF_INTER)
865C
866 KEY1='igap'
867 CALL DEFINTER(KEY1 ,IGAP ,IASSIGN ,IPRINT ,
868 . NTYP ,DEF_INTER)
869C
870 KEY1='irem25i2'
871 CALL DEFINTER(KEY1 ,IREM25I2,IASSIGN ,IPRINT ,
872 . NTYP ,DEF_INTER)
873C
874 KEY1='iedge'
875 CALL DEFINTER(KEY1 ,IEDGE ,IASSIGN ,IPRINT ,
876 . NTYP ,DEF_INTER)
877C
878 KEY1='ibag'
879 CALL DEFINTER(KEY1 ,IBAG ,IASSIGN ,IPRINT ,
880 . NTYP ,DEF_INTER)
881C
882 KEY1='idel25'
883 CALL DEFINTER(KEY1 ,IDEL25 ,IASSIGN ,IPRINT ,
884 . NTYP ,DEF_INTER)
885C
886 KEY1='igap0'
887 CALL DEFINTER(KEY1 ,IGAP0 ,IASSIGN ,IPRINT ,
888 . NTYP ,DEF_INTER)
889C
890 KEY1='isharp'
891 CALL DEFINTER(KEY1 ,ISHARP ,IASSIGN ,IPRINT ,
892 . NTYP ,DEF_INTER)
893C
894 KEY1='inacti'
895 CALL DEFINTER(KEY1 ,INACTI ,IASSIGN ,IPRINT ,
896 . NTYP ,DEF_INTER)
897C
898 KEY1='ithk'
899 CALL DEFINTER(KEY1 ,ITHK ,IASSIGN ,IPRINT ,
900 . NTYP ,DEF_INTER)
901C
902
903C........* PRINT INTERFACES INPUT *.....................
904
905 IF(IDSENS/=0) THEN
906 WRITE(IOUT,3526)IBC1,IBC2,IBC3,
907 . IGSTI,STFAC,ILEV,IEDGE,EDG_ANGL,
908 . STMIN,STMAX,
909 . FRIC,IGAP,GAPSCALE,GAPMAX_S,GAPMAX_M,PERCENT_SIZE,IGAP0,ISHARP,
910 . IREM25I2,IDSENS,
911 . INACTI,VISC,IPARI(14),FLAGREMNOD
912 ELSE
913 WRITE(IOUT,3527)IBC1,IBC2,IBC3,
914 . IGSTI,STFAC,ILEV,IEDGE,EDG_ANGL,
915 . STMIN,STMAX,
916 . FRIC,IGAP,GAPSCALE,GAPMAX_S,GAPMAX_M,PERCENT_SIZE,IGAP0,ISHARP,
917 . IREM25I2,STARTT,STOPT,
918 . INACTI,VISC,IPARI(14),FLAGREMNOD
919 ENDIF
920
921 IF(TPFIT > ZERO) WRITE(IOUT,5040) TPFIT
922 IF(IDEL25/=3) THEN
923 WRITE(IOUT,'(a,a,i5/)')
924 . ' deletion flag on failure of main element',
925 . ' (1:yes-all/2:yes-any/1000:no) : ',IDEL25
926 IF(IDELKEEP == 1)THEN
927 WRITE(IOUT,'(a)')
928 . ' idel: DO not remove non-connected nodes from secondary surface'
929 ENDIF
930 ENDIF
931C
932 IF(IPARI(97) > 0) WRITE(IOUT,3500) STFACM,DTSTIF,IPSTIF
933C
934 IF(INTFRIC > 0 ) THEN
935 WRITE(IOUT,5030) INTFRIC
936 ELSE
937 WRITE(IOUT,1520)MOD(IFQ,10), XFILTR
938 IF(MFROT==0)THEN
939 IF(IFRICTH ==0 ) THEN
940 WRITE(IOUT,1524) FRIC
941 ELSE
942 WRITE(IOUT,1525) IFRICTH,FRIC
943 ENDIF
944 ELSEIF(MFROT==1)THEN
945 WRITE(IOUT,1515)FRIC_P(1),FRIC_P(2),FRIC_P(3),
946 . FRIC_P(4),FRIC_P(5)
947 ELSEIF(MFROT==2)THEN
948 WRITE(IOUT,1522)FRIC,FRIC_P(1),FRIC_P(2),FRIC_P(3),
949 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
950 ELSEIF(MFROT==3)THEN
951 WRITE(IOUT,1523)FRIC_P(1),FRIC_P(2),FRIC_P(3),
952 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
953 ELSEIF(MFROT==4)THEN
954 WRITE(IOUT,1526) FRIC,FRIC_P(1),FRIC_P(2)
955 ENDIF
956 ENDIF
957C Interface Adhesion
958 IF(IVIS2==-1) THEN
959 WRITE(IOUT,5050)VISCFLUID,SIGMAXADH,VISCADHFACT
960 ENDIF
961 IF(INTTH > 0 )THEN
962 IF(IKTHE==0)THEN
963 WRITE(IOUT,2102) KTHE,TINT,FRAD,DRAD,FHEATS,FHEATM,IFORM,FCOND,DCOND
964 ELSE
965 WRITE(IOUT,2103) IKTHE,XTHE,KTHE,TINT,FRAD,DRAD,FHEATS,FHEATM,IFORM,FCOND,DCOND
966 END IF
967 END IF
968 IF(IGAP == 5 )THEN
969 WRITE(IOUT,5051) THK_S,THK_S_SCALE,THK_M,THK_M_SCALE
970 ENDIF
971C--------------------------------------------------------------
972 IF(IS1==0)THEN
973 WRITE(IOUT,'(6x,a)')'no secondary surface input'
974 ELSEIF(IS1==1)THEN
975 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
976 ELSEIF(IS1==2)THEN
977 WRITE(IOUT,'(6x,a)')'secondary surface input by nodes'
978 ELSEIF(IS1==3)THEN
979 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
980 ELSEIF(IS1==4 )THEN
981 WRITE(IOUT,'(6x,a)')'secondary side input by bricks'
982 ELSEIF(IS1==5 )THEN
983 WRITE(IOUT,'(6x,a)')'secondary side input by solid elements'
984 ENDIF
985 IF(IS2==0)THEN
986 WRITE(IOUT,'(6x,a)')'no main surface input'
987 ELSEIF(IS2==1)THEN
988 WRITE(IOUT,'(6x,a)')'main surface input by segments'
989 ELSEIF(IS2==2)THEN
990 WRITE(IOUT,'(6x,a)')'main surface input by nodes'
991 ELSEIF(IS2==3)THEN
992 WRITE(IOUT,'(6x,a)')'main surface input by segments'
993 ELSEIF(IS2==4)THEN
994 WRITE(IOUT,'(6x,a)')'main surface refers ',
995 . 'to hyper-ellipsoidal surface'
996 ENDIF
997C
998C--------------------------------------------------------------
999C------------
1000 RETURN
1001
1002
1003 1515 FORMAT(//
1004 . ' friction model 1 (viscous polynomial)'/,
1005 . ' mu = muo + c1 p + c2 v + c3 pv + c4 p^2 + c5 v^2'/,
1006 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1007 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1008 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1009 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1010 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1011 . ' tangential pressure limit. . .. . . . . .',1PG20.13/)
1012 1522 FORMAT(/
1013 . ' friction model 2 (darmstad law) :'/,
1014 . ' mu = muo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
1015 . ' muo. . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1016 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1017 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1018 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1019 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1020 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1021 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
1022 1523 FORMAT(/
1023 . ' friction model 3 (renard law) :'/,
1024 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1025 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1026 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1027 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1028 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1029 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
1030 1524 FORMAT(/
1031 . ' friction model 0 (coulomb law) :'/,
1032 . ' friction coefficient . . . . . . . . . ',1PG20.13/)
1033 1525 FORMAT(//
1034 . ' friction model 0 (coulomb law) :'/,
1035 . ' Function for friction coefficient wrt temperature',I10/,
1036 . ' ordinate scale factor on ifuntcf . . . . ',1PG20.13/)
1037
1038 1520 FORMAT(
1039 . ' friction filtering flag. . . . . . . . . ',I10/,
1040 . ' filtering factor . . . . . . . . . . . . ',1PG20.13)
1041 1526 FORMAT(/
1042 . ' exponential decay friction law '/
1043 . ' mu = c1+(MUo-c1)*exp(-c2*v)'/
1044 . ' static coefficient muo . . . . . . . . . ',1PG20.13/,
1045 . ' dynamic coefficient c1 . . . . . . . . . ',1PG20.13/,
1046 . ' exponential decay coefficient c2 . . . . ',1PG20.13/)
1047C----------
1048 3526 FORMAT(//
1049 . ' type==25 muti-type impacting ' //,
1050 . ' bound. cond. deleted after impact . . . . . in x dir ',I1/,
1051 . ' secondary node (1:YES 0:NO) y dir ',I1/,
1052 . ' z dir ',I1/,
1053 . ' stiffness formulation . . . . . . . . . . . ',I5/,
1054 . ' stiffness factor. . . . . . . . . . . . . . ',1PG20.13/,
1055 . ' contact types (1:S1/S1;2:S1/S2;3:N/S . . . ',I5/,
1056 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',I5/,
1057 . ' ANGLE FOR EDGE COMPUTATION (Iedge/=0) . . . ',1PG20.13/,
1058 . ' minimum stiffness . . . . . . . . . . . . . ',1PG20.13/,
1059 . ' maximum stiffness . . . . . . . . . . . . . ',1PG20.13/,
1060 . ' friction factor . . . . . . . . . . . . . . ',1PG20.13/,
1061 . ' gap flag. . . . . . . . . . . . . . . . . . ',I5/,
1062 . ' gap scale factor. . . . . . . . . . . . . . ',1PG20.13/,
1063 . ' maximum secondary gap value . . . . . . . . ',1PG20.13/,
1064 . ' maximum main gap value. . . . . . . . . . . ',1PG20.13/,
1065 . ' %meshsize taken into account for '/,
1066 . ' calculation of maximum gap(IGAP = 3). . . . ',1PG20.13/,
1067 . ' zero gap for secondary shell on free edge . ',I5/,
1068 . ' gap shape along main free edges ',/,
1069 . ' (1:SQUARE,2:CYLINDRICAL) . . . . . . ',I5/,
1070 . ' de-activation flag if conflict w/ type2 . . ',I10/,
1071 . ' start/stop times activated by sensor id . . ',I10/,
1072 . ' de-activation of initial penetrations . . . ',I10/,
1073 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1074 . ' quadratic damping flag. . . . . . . . . . . ',I5/,
1075 . ' flagremnode : not consider neighboring '/,
1076 . ' nodes in case of element size < gap value . ',I5/)
1077C
1078 3527 FORMAT(//
1079 . ' type==25 muti-type impacting ' //,
1080 . ' bound. cond. deleted after impact . . . . . in x dir ',I1/,
1081 . ' secondary node (1:YES 0:NO) y dir ',I1/,
1082 . ' z dir ',I1/,
1083 . ' stiffness formulation . . . . . . . . . . . ',I5/,
1084 . ' stiffness factor. . . . . . . . . . . . . . ',1PG20.13/,
1085 . ' contact types (1:S1/S1;2:S1/S2;3:N/S . . . ',I5/,
1086 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',I5/,
1087 . ' ANGLE FOR EDGE COMPUTATION (Iedge/=0) . . . ',1PG20.13/,
1088 . ' minimum stiffness . . . . . . . . . . . . . ',1PG20.13/,
1089 . ' maximum stiffness . . . . . . . . . . . . . ',1PG20.13/,
1090 . ' friction factor . . . . . . . . . . . . . . ',1PG20.13/,
1091 . ' gap flag. . . . . . . . . . . . . . . . . . ',I5/,
1092 . ' gap scale factor. . . . . . . . . . . . . . ',1PG20.13/,
1093 . ' maximum secondary gap value . . . . . . . . ',1PG20.13/,
1094 . ' maximum main gap value. . . . . . . . . . . ',1PG20.13/,
1095 . ' %meshsize taken into account for '/,
1096 . ' calculation of maximum gap(IGAP = 3). . . . ',1PG20.13/,
1097 . ' zero gap for secondary shell on free edge . ',I5/,
1098 . ' gap shape along main free edges ',/,
1099 . ' (1:SQUARE,2:CYLINDRICAL) . . . . . . ',I5/,
1100 . ' de-activation flag if conflict w/ type2 . . ',I10/,
1101 . ' start time. . . . . . . . . . . . . . . . . ',1PG20.13/,
1102 . ' stop time . . . . . . . . . . . . . . . . . ',1PG20.13/,
1103 . ' de-activation of initial penetrations . . . ',I10/,
1104 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1105 . ' quadratic damping flag. . . . . . . . . . . ',I5/,
1106 . ' flagremnode : not consider neighboring '/,
1107 . ' nodes in case of element size < gap value . ',i5/)
1108 3500 FORMAT(/
1109 . ' STIFFNESS BASED OF TIME STEP AND MASSES :'/,
1110 . ' SCALE FACTOR . . . . . . . . . . . . . . . . . ',1pg20.13/,
1111 . ' TIME STEP . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1112 . ' FLAG FOR PENALTY STIFFNESS . . . . . . . . . . ',1pg20.13/)
1113C
1114 5030 FORMAT(/
1115 . ' INTERFACE FRICTION MODEL. . . . . . . . . ',i10)
1116 5040 FORMAT(' PRESS-FIT DURATION TIME . . . . . . . . . ',1pg20.13/)
1117C
1118 5050 FORMAT(/
1119 . ' INTERFACE ADHESION MODEL ' /,
1120 . ' INTERFACE FLUID VISCOSITY . . . . . . . ',1pg20.13/,
1121 . ' MAXIMUM ADHESIVE FORCE PER UNIT AREA. . ',1pg20.13/,
1122 . ' TANGENTIAL VISCOUS FORCE SCALE FACTOR . ',1pg20.13/)
1123C
1124 5051 FORMAT(/
1125 . ' CONSTANT CONTACT THICKNESS ' /,
1126 . ' SECONDARY CONTACT THICKNESS . . . . . . ',1pg20.13/,
1127 . ' SECONDARY CONTACT THICKNESS SCALE . . . ',1pg20.13/,
1128 . ' MAIN CONTACT THICKNESS . . . . . . . . ',1pg20.13/,
1129 . ' MAIN CONTACT THICKNESS SCALE . . . . . ',1pg20.13/)
1130C
1131 2102 FORMAT(//
1132 . ' Thermal interface ' //,
1133 . ' Thermal heat exchange coefficient . . . . .',1pg20.13/,
1134 . ' Interface temperature . . . . . . . . . . ',1pg20.13/,
1135 . ' Radiation factor . . . . . . . . . . . . . ',1pg20.13/,
1136 . ' Maximum distance for radiation computation.',1pg20.13/,
1137 . ' Frictional heat transfer on SECONDARY surface . ',1pg20.13/,
1138 . ' Frictional heat transfer on MAIN surface. ',1pg20.13/,
1139 . ' FORMULATION CHOICE : . . . . . . . . . . . ',i10,/,
1140 . ' 0 : heat transfer between SECONDARY side',/,
1141 . ' and constant temperature in interface',/,
1142 . ' 1 : heat Exchange between pieces in contact'/
1143 . ' Function for thermal heat exchange coefficient wrt distance',i10/,
1144 . ' Maximum distance for conductive heat exchange',1pg20.13)
1145 2103 FORMAT(//
1146 . ' Thermal interface ' //,
1147 . ' Function for thermal heat exchange coefficient wrt contact pressure',i10/,
1148 . ' Abscissa scale factor on IFUNTCK. . . . . ',1pg20.13/,
1149 . ' Ordinate scale factor on IFUNTCK . . . . ',1pg20.13/,
1150 . ' Interface temperature . . . . . . . . . . ',1pg20.13/,
1151 . ' Radiation factor . . . . . . . . . . . . . ',1pg20.13/,
1152 . ' Maximum distance for radiation computation.',1pg20.13/,
1153 . ' Frictional heat transfer on SECONDARY surface . ',1pg20.13/,
1154 . ' Frictional heat transfer on MAIN surface. ',1pg20.13/,
1155 . ' FORMULATION CHOICE : . . . . . . . . . . . ',i10,/,
1156 . ' 0 : heat transfer between SECONDARY side',/,
1157 . ' and constant temperature in interface',/,
1158 . ' 1 : heat Exchange between pieces in contact'/
1159 . ' Function for thermal heat exchange coefficient wrt distance',i10/,
1160 . ' Maximum distance for conductive heat exchange',1pg20.13)
1161 END
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
Definition damping.F:882
subroutine definter(key, ival, flag, iprint, ityp, def_inter)
Definition definter.F:46
if(complex_arithmetic) id
#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)
subroutine hm_read_inter_type25(ipari, stfac, frigap, noint, ni, igrnod, igrsurf, xfiltr, fric_p, def_inter, sensors, nom_opt, unitab, lsubmodel, titr, nom_optfric, intbuf_fric_tab, npc, npc1, tf, parameters, npari, nparir, snpc, snpc1, npts, itherm_fe, intheat)
initmumps id
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
integer nsubmod
int main(int argc, char *argv[])
subroutine static(v, vr, a, ar, ms, in, igrnod, weight_md, wfext)
Definition static.F:33