OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_type24.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_type24 ../starter/source/interfaces/int24/hm_read_inter_type24.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_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
32!|| inter_dcod_friction ../starter/source/interfaces/reader/inter_dcod_friction.F
33!|| inter_dcod_sensor ../starter/source/interfaces/reader/inter_dcod_sensor.F
34!|| ngr2usr ../starter/source/system/nintrr.F
35!||--- uses -----------------------------------------------------
36!|| format_mod ../starter/share/modules1/format_mod.F90
37!|| message_mod ../starter/share/message_module/message_mod.F
38!|| reader_old_mod ../starter/share/modules1/reader_old_mod.F90
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 ,PARAMETERS ,NPARI ,NPARIR ,
46 5 ITHERM_FE ,INTHEAT)
47C============================================================================
48C
49C-----------------------------------------------
50C M o d u l e s
51C-----------------------------------------------
52 USE message_mod
53 USE intbuf_fric_mod
54 USE groupdef_mod
56 USE unitab_mod
57 USE sensor_mod
60 USE format_mod , ONLY : fmt_i_2f
61 USE reader_old_mod , ONLY : line, irec
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"
75#include "remesh_c.inc"
76C-----------------------------------------------
77C D u m m y A r g u m e n t s
78C-----------------------------------------------
79 INTEGER,INTENT(IN) :: NPARI,NPARIR !< array size
80 INTEGER,INTENT(IN) :: ITHERM_FE
81 INTEGER,INTENT(INOUT) :: INTHEAT
82 INTEGER NOM_OPT(LNOPT1,*), NOM_OPTFRIC(LNOPT1,*)
83 INTEGER ISU1,ISU2,NI
84 INTEGER IPARI(NPARI),DEF_INTER(100)
85 my_real stfac,xfiltr
86 my_real frigap(nparir),fric_p(10)
87 CHARACTER(LEN=NCHARTITLE),INTENT(IN) :: TITR
88 TYPE(intbuf_fric_struct_) INTBUF_FRIC_TAB(*)
89 TYPE(submodel_data),INTENT(IN) :: LSUBMODEL(NSUBMOD)
90 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
91 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
92C-----------------------------------------------
93 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
94 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
95 TYPE (PARAMETERS_) ,INTENT(INOUT):: PARAMETERS
96C-----------------------------------------------
97C L o c a l V a r i a b l e s
98C-----------------------------------------------
99 INTEGER I,IBC1, IBC2, IBC3, IBUC, NOINT, NTYP,
100 . inacti, ibc1m, ibc2m, ibc3m, igsti, ivis2,is1, is2,
101 . ilev, igap,multimp,mfrot,ifq,ibag,modfr,
102 . isym,iedge,nod1,idum,idel24,
103 . igap0,flagremnod,idsens,idelkeep,intkg,irem24i2,iprint,
104 . intfric,multimpe,iassign,icurv,intply,intth,npref,
105 . intnitsche,ipen0,na1,na2,iadm,nradm,iform,ipstif
106 my_real
107 . fric,gap,startt,bumult,stopt,c1,c2,c3,c4,c5,c6,alpha,
108 . gapscale,stmin,stmax,edg_angl,
109 . percent_size,gapmax_s,gapmax_m,penmax,penmin,visc,viscf,
110 . eten_m,padm,angladm,rsth,fheat,tint,cadm,tpfit,stfacm,
111 . dtstif
112 CHARACTER(LEN=NCHARKEY)::KEY1
113 CHARACTER(LEN=NCHARFIELD)::BCFLAG,BCFLAGM
114!
115 INTEGER, DIMENSION(:), POINTER :: INGR2USR
116C-----------------------------------------------
117C E x t e r n a l F u n c t i o n s
118C-----------------------------------------------
119 INTEGER NGR2USR
120 LOGICAL IS_AVAILABLE
121C-----------------------------------------------
122C=======================================================================
123C READING PENALTY INTERFACE /INTER/TYPE24
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 icurv = 0
149 intply = 0
150 irem24i2 = 0
151 intth = 0
152 idel24= 0
153 intnitsche = 0
154 iadm = 0
155 iform = 0
156 ivis2=0
157 ipstif = 0
158
159C-------for the moment
160C IGSTI = 0
161 ibag = 0
162 multimpe = 0
163C
164 stopt=ep30
165 inacti = 0
166 viscf = zero
167 fric = zero
168 gap = zero
169 gapscale = zero
170 startt = zero
171 visc = zero
172 xfiltr = zero
173 DO i = 1, 10
174 fric_p(i) = zero
175 ENDDO
176 c1=zero
177 c2=zero
178 c3=zero
179 c4=zero
180 c5=zero
181 c6=zero
182
183 gapscale = zero
184 percent_size = zero
185 edg_angl = zero
186 gapmax_s = zero
187 gapmax_m = zero
188 penmax = zero
189 penmin = zero
190 eten_m = zero
191 rsth = ep30
192 fheat= one
193 tint = zero
194 stfacm= zero
195C
196 iassign = 1
197C
198 ntyp = 24
199 ipari(15)=noint
200 ipari(7)=ntyp
201C
202 is_available = .false.
203C
204C--------------------------------------------------
205C EXTRACT DATAS (INTEGER VALUES)
206C--------------------------------------------------
207 CALL hm_get_intv('secondaryentityids',isu1,is_available,lsubmodel)
208 CALL hm_get_intv('mainentityids',isu2,is_available,lsubmodel)
209 CALL hm_get_intv('Istf',igsti,is_available,lsubmodel)
210 CALL hm_get_intv('Irem_i2',irem24i2,is_available,lsubmodel)
211 CALL hm_get_intv('TYPE24_Idel',idel24,is_available,lsubmodel)
212
213 CALL hm_get_intv('GRNOD_ID',nod1,is_available,lsubmodel)
214 CALL hm_get_intv('TYPE24_Iedge',iedge,is_available,lsubmodel)
215 CALL hm_get_intv('IPSTIF',ipstif,is_available,lsubmodel)
216C
217 CALL hm_get_intv('Igap',igap0,is_available,lsubmodel)
218 CALL hm_get_intv('Ipen',ipen0,is_available,lsubmodel)
219C
220 CALL hm_get_intv('Deactivate_X_BC',ibc1,is_available,lsubmodel)
221 CALL hm_get_intv('Deactivate_Y_BC',ibc2,is_available,lsubmodel)
222 CALL hm_get_intv('Deactivate_Z_BC',ibc3,is_available,lsubmodel)
223
224 CALL hm_get_intv('INACTIV',inacti,is_available,lsubmodel)
225C
226 CALL hm_get_intv('Ifric',mfrot,is_available,lsubmodel)
227 CALL hm_get_intv('Ifiltr',ifq,is_available,lsubmodel)
228 CALL hm_get_intv('ISENSOR',idsens,is_available,lsubmodel)
229 CALL hm_get_intv('Fric_ID',intfric,is_available,lsubmodel)
230C
231C--------------------------------------------------
232C EXTRACT DATAS (REAL VALUES)
233C--------------------------------------------------
234 CALL hm_get_floatv('GAP1',gapmax_s,is_available,lsubmodel,unitab)
235 CALL hm_get_floatv('GAP2',gapmax_m,is_available,lsubmodel,unitab)
236C
237 CALL hm_get_floatv('STMIN',stmin,is_available,lsubmodel,unitab)
238 CALL hm_get_floatv('STMAX',stmax,is_available,lsubmodel,unitab)
239 CALL hm_get_floatv('TYPE24_Edge_Angle',edg_angl,is_available,lsubmodel,unitab)
240 CALL hm_get_floatv('Ipen_max',penmax,is_available,lsubmodel,unitab)
241 CALL hm_get_floatv('Ipen_min',penmin,is_available,lsubmodel,unitab)
242 CALL hm_get_floatv('STFAC_MDT',stfacm,is_available,lsubmodel,unitab)
243C
244 CALL hm_get_floatv('STFAC',stfac,is_available,lsubmodel,unitab)
245 CALL hm_get_floatv('FRIC',fric,is_available,lsubmodel,unitab)
246 CALL hm_get_floatv('TSTART',startt,is_available,lsubmodel,unitab)
247 CALL hm_get_floatv('TSTOP',stopt,is_available,lsubmodel,unitab)
248C
249 CALL hm_get_floatv('STIFF_DC',visc,is_available,lsubmodel,unitab)
250 CALL hm_get_floatv('Tpressfit',tpfit,is_available,lsubmodel,unitab)
251C
252 CALL hm_get_floatv('Xfreq',alpha,is_available,lsubmodel,unitab)
253 CALL hm_get_floatv('DTSTIF',dtstif,is_available,lsubmodel,unitab)
254C
255 IF (mfrot>0) THEN
256 CALL hm_get_floatv('C1',c1,is_available,lsubmodel,unitab)
257 CALL hm_get_floatv('C2',c2,is_available,lsubmodel,unitab)
258 CALL hm_get_floatv('C3',c3,is_available,lsubmodel,unitab)
259 CALL hm_get_floatv('C4',c4,is_available,lsubmodel,unitab)
260 CALL hm_get_floatv('C5',c5,is_available,lsubmodel,unitab)
261 ENDIF
262 IF (mfrot>1) THEN
263 CALL hm_get_floatv('C6',c6,is_available,lsubmodel,unitab)
264 ENDIF
265C----- was hiding flag
266 npref=0
267C
268C--------------------------------------------------
269C DEFAULT VALUES DEFINITION
270C--------------------------------------------------
271C
272 iprint = 0
273
274 key1='IGSTI'
275 CALL definter(key1 ,igsti ,iassign ,iprint ,
276 . ntyp ,def_inter)
277C
278 key1='IDEL24'
279 CALL definter(key1 ,idel24 ,iassign ,iprint ,
280 . ntyp ,def_inter)
281C
282 key1='IEDGE'
283 CALL definter(key1 ,iedge ,iassign ,iprint ,
284 . ntyp ,def_inter)
285C
286 key1='IGAP0'
287 CALL definter(key1 ,igap0 ,iassign ,iprint ,
288 . ntyp ,def_inter)
289C
290 key1='IPEN0'
291 CALL definter(key1 ,ipen0 ,iassign ,iprint ,
292 . ntyp ,def_inter)
293C
294 key1='INACTI'
295 CALL definter(key1 ,inacti ,iassign ,iprint ,
296 . ntyp ,def_inter)
297C
298C--------------------------------------------------
299C CHECKS And Storage IPARI FRIGAP
300C--------------------------------------------------
301C
302C
303C....* Card1 :flags *.............
304C
305
306C
307C....* CHECKS *.............
308
309 IF (irem24i2==0) THEN
310 irem24i2=1
311c IF (IIMPLICIT>0) IREM24I2=1
312 END IF
313 IF (irem24i2==3) irem24i2 = 0
314
315C
316C....* Card2 :Gaps *.............
317C
318
319 igap = 1
320 ipari(21)=igap
321 ipari(63)=irem24i2
322C------ consisting w/ manuel
323 IF (irem24i2==0) irem24i2 = 3
324
325
326C.....* CHECKS AND Storage IPARI FRIGAP *..........
327C
328C
329C------ILEV =1 : ISU1>0,ISU2=0; IS3>=0
330C 2 : ISU1>0,ISU2>0; IS3>=0
331C 3 : ISU1=0,ISU2>0;IS3>0
332 ilev=0
333
334 IF(isu1 /= 0 .AND.isu2 == 0)THEN
335 ilev = 1
336 ELSEIF(isu1 /= 0 .AND.isu2 /= 0)THEN
337 ilev = 2
338 IF (isu1 == isu2) THEN
339 ilev = 1
340 isu2 = 0
341 CALL ancmsg(msgid=1022,
342 . msgtype=msgwarning,
343 . anmode=aninfo,
344 . i1=noint,
345 . c1=titr)
346 END IF
347 ELSEIF(isu1 == 0 .AND.isu2 /= 0 .AND. nod1 /= 0) THEN
348 ilev = 3
349 ELSE
350 IF(isu2 == 0) THEN
351 CALL ancmsg(msgid=119,
352 . anmode=aninfo,
353 . msgtype=msgerror,
354 . i1=noint,
355 . c1=titr)
356 ELSEIF (nod1 == 0) THEN
357 CALL ancmsg(msgid=1001,
358 . anmode=aninfo,
359 . msgtype=msgerror,
360 . i1=noint,
361 . c1=titr)
362 ENDIF
363 is1=0
364 is2=0
365 END IF
366 isym = 1
367
368 SELECT CASE (ilev)
369 CASE(1)
370 ingr2usr => igrsurf(1:nsurf)%ID
371 isu1=ngr2usr(isu1,ingr2usr,nsurf)
372 isu2=isu1
373 is1=-1
374 is2=-3
375 CASE(2)
376C----------------if we copy int7--
377 is1 = 0
378 ingr2usr => igrsurf(1:nsurf)%ID
379 is1=ngr2usr(isu1,ingr2usr,nsurf)
380 IF (is1==0) THEN
381 CALL ancmsg(msgid=1000,
382 . anmode=aninfo_blind_1,
383 . msgtype=msgerror,
384 . i1=noint,
385 . c1=titr)
386 ELSE
387 isu1=is1
388 END IF
389 ingr2usr => igrsurf(1:nsurf)%ID
390 isu2=ngr2usr(isu2,ingr2usr,nsurf)
391 is1=-1
392 is2=-1
393 CASE(3)
394 ingr2usr => igrsurf(1:nsurf)%ID
395 isu2=ngr2usr(isu2,ingr2usr,nsurf)
396 is1=-2
397 is2=-1
398 IF (iedge > 0 ) THEN
399 iedge = 0
400 edg_angl=zero
401c CALL ANCWAR(119,ANINFO)
402 END IF
403 END SELECT
404 ingr2usr => igrnod(1:ngrnod)%ID
405 IF(nod1 /= 0) nod1=ngr2usr(nod1,ingr2usr,ngrnod)
406C------only IEDGE=5 or IEDGE=0
407 IF (iedge>0) iedge=5
408 IF (iedge==4.OR.iedge==5) THEN
409 ipari(59)=iedge-3
410c IEDGE=MIN(4,IEDGE)
411 END IF
412
413C--------change default EDG_ANGL=135
414 IF((iedge>=3).AND. edg_angl==zero)
415C + EDG_ANGL=NINETY+ONE
416 + edg_angl=hundred+thirty+five
417 frigap(26) = cos((hundred80-edg_angl)*pi/hundred80)
418
419
420C---------Default Istif for implicit
421 IF (iimplicit>0.AND.igsti==0) igsti=4
422
423 IF(igsti >= 10) THEN ! Nitsche Method Activation instead of penalty
424 intnitsche = 1
425 ipari(86) = 1
426 igsti = igsti - 10
427 IF(intnitsche > 0 ) nitsche = 1
428 IF (ilev /= 1.AND.ilev /= 2) THEN
429 CALL ancmsg(msgid=1622,
430 . msgtype=msgerror,
431 . anmode=aninfo,
432 . i1=noint,
433 . c1=titr)
434 ENDIF
435 IF (iedge > 0) THEN
436 CALL ancmsg(msgid=1746,
437 . msgtype=msgerror,
438 . anmode=aninfo,
439 . i1=noint,
440 . c1=titr)
441 ENDIF
442 ENDIF
443
444C-------tempo: Isurf <- ILEV=IPARI(20) -----
445
446 ipari(26)=nod1
447
448 ipari(13)=is1*10+is2
449 ipari(45)=isu1
450 ipari(46)=isu2
451
452 ipari(43)=isym
453 ipari(58)=min(4,iedge)
454 ipari(63)=irem24i2
455
456C------ consisting w/ manuel
457 IF (irem24i2==0) irem24i2 = 3
458C--------auto stif w/ Press-fit
459 IF (inacti==-1) THEN
460 igsti = 4
461 ELSEIF (inacti==-2) THEN ! using high stif
462 igsti = 2
463 inacti=-1
464 END IF
465 ipari(20)=ilev
466 ipari(34)=igsti
467 ipari(47) = intth
468 IF(intth > 0 ) intheat = 1
469 IF (iimplicit>0) intkg=1
470C flag to activate update of gap with plyxfem
471 ipari(66) = intply
472
473C
474C....* Card3 *.............
475C
476
477 IF(igsti>1 .OR. igsti==-1)THEN
478 i7stifs=1
479 IF(stmax==zero)stmax=ep30
480 ELSE
481 stmin = zero
482 stmax = ep30
483 END IF
484
485c IF(IGAP==3)THEN
486c GAPMAX = GAPMAX * FAC_L
487c IF(GAPSCALE==ZERO)GAPSCALE=ONE
488c FRIGAP(13) = GAPSCALE
489c FRIGAP(16) = GAPMAX
490c IF(PERCENT_SIZE==ZERO) PERCENT_SIZE = 0.4
491c END IF
492
493 percent_size=zero
494
495C----------- GAPMAX->GAPMAX_S: EP30
496C-----------IGAP0,IPEN0: used only for starter;sharing places w/ int20
497 ipari(53)=igap0
498 ipari(54)=ipen0
499c FRIGAP(16) = EP30
500 frigap(17) = stmin
501 frigap(18) = stmax
502c FRIGAP(28) = PERCENT_SIZE
503
504 IF(gapmax_s==zero)gapmax_s=ep30
505 IF(gapmax_m==zero)gapmax_m=ep30
506
507C IF(PENMAX==ZERO)PENMAX=EP30
508 IF(penmin==zero)penmin=em8
509 IF(eten_m == zero)eten_m =twenty5*em03
510 frigap(35) = gapmax_s
511 frigap(36) = gapmax_m
512 frigap(37) = penmax
513 frigap(38) = penmin
514 frigap(39) = eten_m
515
516 na1 = 0
517 na2 = 0
518c IF(ICURV==1)THEN
519c WRITE(IOUT,*)' SPHERICAL CURVATURE:'
520c WRITE(IOUT,*)' NA1 =',NA1,' NA2 =',NA2
521c ELSEIF(ICURV==2)THEN
522c WRITE(IOUT,*)' CYLINDRICAL CURVATURE:'
523c WRITE(IOUT,*)' NA1 =',NA1,' NA2 =',NA2
524c ELSEIF(ICURV == 3)THEN
525c WRITE(IOUT,*)' SURFACE WITH CUBIC CURVATURE'
526c ENDIF
527 ipari(39) = 0
528 ipari(40) = na1
529 ipari(41) = na2
530
531C
532C....* Card4 *.............
533C
534
535C
536C.....* CHECKS *.....
537C
538 gap=zero
539C GAP = GAP * FAC_L
540 IF (stopt == zero) stopt = ep30
541
542C.....* Storage IPARI FRIGAP *.......
543
544 frigap(1)=fric
545 frigap(2)=gap
546 frigap(3)=startt
547 frigap(11)=stopt
548
549C
550C....* Card5 *.............
551C
552
553
554C ----- presfit
555 IF (inacti==-1.AND.iimplicit==0) THEN
556 npref=10000
557 ipari(40) = npref
558 ELSE
559 tpfit=zero
560 END IF
561C
562C......* CHECKS AND Storage IPARI FRIGAP *.....
563C
564C Hidden flag no more read using HM reader
565c IF (BCFLAGM(LFIELD-2:LFIELD-2)== '1') IBC1M = 1
566c IF (BCFLAGM(LFIELD-1:LFIELD-1)== '1') IBC2M = 1
567c IF (BCFLAGM(LFIELD :LFIELD )== '1') IBC3M = 1
568
569 IF (iimplicit>0.AND.inacti==0) inacti=-1
570 IF (inacti/=0.AND.inacti/=-1.AND.inacti/=5) THEN
571 IF (inacti>0) THEN
572 inacti = 5
573 ELSE
574 inacti = 0
575 END IF
576 CALL ancmsg(msgid=1031,
577 . msgtype=msgwarning,
578 . anmode=aninfo,
579 . i1=noint,
580 . c1=titr ,
581 . i2=inacti)
582 END IF
583 ipari(22)=inacti
584
585 IF(stfac==zero) THEN
586 stfac=one
587 ENDIF
588 IF(igsti==1)stfac=-stfac
589
590C------no use of VISCF
591 viscf=zero
592 frigap(15)=viscf**2
593C-------used for TPFIT
594 frigap(15)=tpfit
595C default 1: harmonic mass, IVIS2=-1 old: SECONDARY node mass
596 IF (ivis2==0) THEN
597 ivis2=1
598 ELSEIF (ivis2==-1) THEN
599 ivis2=0
600 END IF
601 IF(visc==zero)THEN
602 IF(ivis2==5)THEN
603 visc=one
604 ELSE
605 visc=fiveem2
606 ENDIF
607 ENDIF
608 frigap(14)=visc
609
610 IF (idel24 < 0) THEN
611 idelkeep=1
612 idel24=abs(idel24)
613 END IF
614 ipari(61)=idelkeep
615
616 IF (idel24>2.OR.n2d==1) idel24 = 0
617 ipari(17)=idel24
618
619 ipari(14)=ivis2
620
621C------------remove BUMULT
622 bumult=zero
623 IF(bumult==zero) THEN
624 bumult = bmul0
625C bmult increases for very large models and interface 7 or 20
626
627 IF(numnod > 2500000) THEN
628 bumult = bmul0*two
629 ELSEIF(numnod > 1500000) THEN
630 bumult = bmul0*three/two
631 END IF
632 END IF
633 frigap(4)=bumult
634
635C---------
636 IF(ipstif >0 .OR.igsti==7.AND.igsti/=-1) ipari(97) = 1
637 IF(igsti==7.AND.ipstif ==0) ipstif = 1
638 IF(igsti==-1) ipstif = 0
639 ipari(98) = ipstif
640 IF(stfacm == zero.AND.ipari(97) > 0) stfacm = em01
641 IF(ipari(97) > 0) THEN
642 frigap(48) = dtstif
643 parameters%ISTIF_DT = 1
644 frigap(47) = stfacm
645 ELSE
646 dtstif = zero
647 stfacm = zero
648 ENDIF
649
650C
651C....* Card6 *.............
652C
653
654C......* CHECKS *.....
655C
656C IF (MFROT/=0.AND.VISCF==0.0) VISCF=ONE
657 modfr = 2
658 IF (alpha==0.) ifq = 0
659 IF (modfr==0) modfr = 1
660 IF (modfr==2.AND.ifq<10) ifq = ifq + 10
661C IF(MODFR==2)VISCF=ZERO
662 IF (ifq>0) THEN
663 IF (ifq==10) xfiltr = one
664 IF (mod(ifq,10)==1) xfiltr = alpha
665 IF (mod(ifq,10)==2) xfiltr=four*atan2(one,zero) / alpha
666 IF (mod(ifq,10)==3) xfiltr=four*atan2(one,zero) * alpha
667 IF (xfiltr<zero) THEN
668 CALL ancmsg(msgid=554,
669 . msgtype=msgerror,
670 . anmode=aninfo_blind_1,
671 . i1=noint,
672 . c1=titr,
673 . r1=alpha)
674 ELSEIF (xfiltr>1.AND.mod(ifq,10)<=2) THEN
675 CALL ancmsg(msgid=554,
676 . msgtype=msgerror,
677 . anmode=aninfo_blind_1,
678 . i1=noint,
679 . c1=titr,
680 . r1=alpha)
681 ENDIF
682 ELSE
683 xfiltr = zero
684 ENDIF
685
686 IF (ibag/=0.AND.nvolu==0 .AND. ialelag == 0) THEN
687 CALL ancmsg(msgid=614,
688 . msgtype=msgwarning,
689 . anmode=aninfo_blind_2,
690 . i1=noint,
691 . c1=titr)
692 ibag=0
693 ENDIF
694 intbag = max(intbag,ibag)
695 kcontact =max(kcontact,ibag)
696
697C-------* Storage IPARI FRIGAP *----------------------------
698 ipari(30) = mfrot
699 ipari(31) = ifq
700 ipari(32) = ibag
701C INTBAG = MAX(INTBAG,IBAG)
702 ipari(72) = intfric
703 ipari(64) = idsens
704
705C
706C....* Card7 : C1...C6 friction data *.............
707C
708
709 fric_p(1) = c1
710 fric_p(2) = c2
711 fric_p(3) = c3
712 fric_p(4) = c4
713 fric_p(5) = c5
714 fric_p(6) = c6
715
716C
717C....* Card9 : Thermal input not available yet *.............
718C
719
720 IF (iadm/=0.AND.nadmesh==0) THEN
721 CALL ancmsg(msgid=647,
722 . msgtype=msgwarning,
723 . anmode=aninfo_blind_2,
724 . i1=noint,
725 . c1=titr)
726 iadm=0
727 ENDIF
728 IF (iadm/=0.AND.icurv/=0) THEN
729 CALL ancmsg(msgid=648,
730 . msgtype=msgerror,
731 . anmode=aninfo,
732 . i1=noint,
733 . c1=titr)
734 ENDIF
735 ipari(44)=iadm
736 kcontact =max(kcontact,ibag,iadm)
737C
738 IF(iadm==2)THEN
739 irec=irec+1
740 READ(iin,rec=irec,err=999,fmt='(A)')line
741 READ(line,err=999,fmt=fmt_i_2f) nradm,padm,angladm
742 IF(nradm==0) nradm =3
743 IF(padm==zero) padm =one
744 ELSE
745 nradm =1
746 padm =one
747 angladm=zero
748 END IF
749 cadm =cos(angladm*pi/hundred80)
750 ipari(49) =nradm
751 frigap(24)=padm
752 frigap(25)=cadm
753
754C
755C....* Card10: Thermal input not available yet *.............
756C
757C
758 IF(itherm_fe == 0 .AND. intth > 0 ) THEN
759 intheat = 0
760 ipari(47) = 0
761 CALL ancmsg(msgid=702,
762 . msgtype=msgwarning,
763 . anmode=aninfo,
764 . i1=noint,
765 . c1=titr)
766 ENDIF
767C
768 IF(rsth == zero)rsth = ep30
769 frigap(20) = one/rsth
770 frigap(21 ) = fheat
771 frigap(22 ) = tint
772 ipari(48) = iform
773
774
775C
776 ipari(12)=ibuc
777 ipari(65) = intkg
778
779
780C FRIGAP(10) is initialized but used only in engine for storing number of couples candidates
781 frigap(10)=float(0)
782
783 multimp = 4
784 ipari(23)=multimp
785
786C
787C------------------------------------------------------------
788C RENUMBERING OF FUNCTIONS AND SENSOR - USER TO INTERNAL ID
789C------------------------------------------------------------
790C
791 CALL inter_dcod_sensor (ntyp,ni,ipari,nom_opt,sensors)
792 CALL inter_dcod_friction(ntyp,ni,ipari,nom_opt,nom_optfric,
793 . intbuf_fric_tab)
794C
795C------------------------------------------------------------
796C PRINTOUT
797C------------------------------------------------------------
798C
799C........* PRINT DEFAULT VALUES *.....................
800C
801 iprint = 1
802C
803 key1='IGSTI'
804 CALL definter(key1 ,igsti ,iassign ,iprint ,
805 . ntyp ,def_inter)
806C
807 key1='IEDGE'
808 CALL definter(key1 ,iedge ,iassign ,iprint ,
809 . ntyp ,def_inter)
810C
811 key1='INACTI'
812 CALL definter(key1 ,inacti ,iassign ,iprint ,
813 . ntyp ,def_inter)
814
815C........* PRINT INTERFACES INPUT *.....................
816
817 IF (inacti==-1.AND.igsti==2) inacti=-2 ! just for printing
818 idum =iedge
819 IF (iedge/=1000.AND.iedge>0)idum =min(1,iedge)
820
821 IF(intnitsche > 0) THEN
822 IF(idsens/=0) THEN
823 WRITE(iout,3528)ibc1,ibc2,ibc3,
824 . igsti,stfac,ilev,idum,edg_angl,
825 . stmin,stmax,
826 . fric,gapmax_s,gapmax_m,igap0,ipen0,
827 . penmax,idsens,
828 . inacti,irem24i2,visc,ipari(14)
829 ELSE
830 WRITE(iout,3529)ibc1,ibc2,ibc3,
831 . igsti,stfac,ilev,idum,edg_angl,
832 . stmin,stmax,
833 . fric,gapmax_s,gapmax_m,igap0,ipen0,
834 . penmax,startt,stopt,
835 . inacti,irem24i2,visc,ipari(14)
836 ENDIF
837 ELSE
838 IF(idsens/=0) THEN
839 WRITE(iout,3524)ibc1,ibc2,ibc3,
840 . igsti,stfac,ilev,idum,edg_angl,
841 . stmin,stmax,
842 . fric,gapmax_s,gapmax_m,igap0,ipen0,
843 . penmax,idsens,
844 . inacti,irem24i2,visc,ipari(14)
845 ELSE
846 WRITE(iout,3525)ibc1,ibc2,ibc3,
847 . igsti,stfac,ilev,idum,edg_angl,
848 . stmin,stmax,
849 . fric,gapmax_s,gapmax_m,igap0,ipen0,
850 . penmax,startt,stopt,
851 . inacti,irem24i2,visc,ipari(14)
852 ENDIF
853 ENDIF
854 IF(intply > 0) WRITE(iout,*)' CONTACT WITH VARIABLE GAP'
855 IF(tpfit > zero) WRITE(iout,5040) tpfit
856
857 IF(idel24/=3) THEN
858 WRITE(iout,'(A,A,I5/)')
859 . ' DELETION FLAG ON FAILURE OF MAIN ELEMENT',
860 . ' (1:YES-ALL/2:YES-ANY) : ',idel24
861 IF(idelkeep == 1)THEN
862 WRITE(iout,'(A)')
863 . ' IDEL: DO NOT REMOVE NON-CONNECTED NODES FROM SECONDARY SURFACE'
864 ENDIF
865 ENDIF
866C
867 IF(stfacm > 0) WRITE(iout,3500) stfacm,dtstif, ipstif
868C
869 IF(intfric > 0 ) THEN
870 WRITE(iout,5030) intfric
871 ELSE
872 WRITE(iout,1520)mod(ifq,10), xfiltr
873 IF(mfrot==0)THEN
874 WRITE(iout,1524) fric
875 ELSEIF(mfrot==1)THEN
876 WRITE(iout,1515)fric_p(1),fric_p(2),fric_p(3),
877 . fric_p(4),fric_p(5)
878 ELSEIF(mfrot==2)THEN
879 WRITE(iout,1522)fric,fric_p(1),fric_p(2),fric_p(3),
880 . fric_p(4),fric_p(5),fric_p(6)
881 ELSEIF(mfrot==3)THEN
882 WRITE(iout,1523)fric_p(1),fric_p(2),fric_p(3),
883 . fric_p(4),fric_p(5),fric_p(6)
884 ELSEIF(mfrot==4)THEN
885 WRITE(iout,1526) fric,fric_p(1),fric_p(2)
886 ENDIF
887 ENDIF
888C
889 IF(ibag/=1000) THEN
890 WRITE(iout,*)' AIRBAG POROSITY COUPLING ON '
891 ENDIF
892 IF(iadm/=0) THEN
893 WRITE(iout,*)' MESH REFINEMENT CASE OF CONTACT',
894 .' (0:NO/1:DUE TO CURVATURE/2:DUE TO CURVATURE OR PENETRATION)',
895 .' SET TO ',iadm
896 IF(iadm==2)THEN
897 WRITE(iout,1557) nradm,padm,angladm
898 END IF
899 ENDIF
900C
901 IF(intth > 0 ) WRITE(iout,2501) rsth,tint,iform
902
903C--------------------------------------------------------------
904 IF(is1==0)THEN
905 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
906 ELSEIF(is1==1)THEN
907 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
908 ELSEIF(is1==2)THEN
909 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
910 ELSEIF(is1==3)THEN
911 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
912 ELSEIF(is1==4 )THEN
913 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
914 ELSEIF(is1==5 )THEN
915 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
916 ENDIF
917 IF(is2==0)THEN
918 WRITE(iout,'(6x,a)')'no main surface input'
919 ELSEIF(IS2==1)THEN
920 WRITE(IOUT,'(6x,a)')'main surface input by segments'
921 ELSEIF(IS2==2)THEN
922 WRITE(IOUT,'(6x,a)')'main surface input by nodes'
923 ELSEIF(IS2==3)THEN
924 WRITE(IOUT,'(6x,a)')'main surface input by segments'
925 ELSEIF(IS2==4)THEN
926 WRITE(IOUT,'(6x,a)')'main surface refers ',
927 . 'to hyper-ellipsoidal surface'
928 ENDIF
929C
930C--------------------------------------------------------------
931C------------
932 RETURN
933 999 CALL FREERR(3)
934 RETURN
935
936
937 1515 FORMAT(//
938 . ' friction model 1 (viscous polynomial)'/,
939 . ' mu = muo + c1 p + c2 v + c3 pv + c4 p^2 + c5 v^2'/,
940 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
941 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
942 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
943 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
944 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
945 . ' tangential pressure limit. . .. . . . . .',1PG20.13/)
946 1522 FORMAT(/
947 . ' friction model 2 (darmstad law) :'/,
948 . ' mu = muo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
949 . ' muo. . . . . . . . . . . . . . . . . . . ',1PG20.13/,
950 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
951 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
952 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
953 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
954 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
955 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
956 1523 FORMAT(/
957 . ' friction model 3 (renard law) :'/,
958 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
959 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
960 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
961 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
962 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
963 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
964 1524 FORMAT(/
965 . ' friction model 0 (coulomb law) :'/,
966 . ' friction coefficient . . . . . . . . . ',1PG20.13/)
967
968 1526 FORMAT(/
969 . ' exponential decay friction law '/
970 . ' mu = c1+(muo-c1)*exp(-c2*v)'/
971 . ' static coefficient muo . . . . . . . . . ',1PG20.13/,
972 . ' dynamic coefficient c1 . . . . . . . . . ',1PG20.13/,
973 . ' exponential decay coefficient c2 . . . . ',1PG20.13/)
974
975
976 1520 FORMAT(
977 . ' friction filtering flag. . . . . . . . . ',I10/,
978 . ' filtering factor . . . . . . . . . . . . ',1PG20.13)
979 1557 FORMAT(
980 .' number of elements within a 90 degrees fillet ',I5/,
981 .' --------------------------------------------- '/,
982 .' criteria for refinement due to penetration : '/,
983 .' ------------------------------------------ '/,
984 .' minimum percentage of penetration ',
985 . 1pg20.13/,
986 .' MAXIMUM ANGLE ON MAIN SIDE AT CONTACT LOCATION ',
987 . 1pg20.13//)
988C----------
989 2501 FORMAT(//
990 . ' TYPE==7 thermal interface ' //,
991 . ' Heat conduction per surface unit. . . . . ',1pg20.13/,
992 . ' Interface temperature . . . . . . . . . . ',1pg20.13/,
993 . ' FORMULATION CHOICE : . . . . . . . . . . . . ',i10,/,
994 . ' 0 : heat transfer between shells(SECONDARY side)',/,
995 . ' and constant temperature in interface',/,
996 . ' 1 : heat Exchange between pieces in contact')
997C----------change message here
998 3524 FORMAT(//
999 . ' TYPE==24 MUTI-TYPE IMPACTING ' //,
1000 . ' BOUND. COND. DELETED AFTER IMPACT . . . . . IN X DIR ',i1/,
1001 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
1002 . ' Z DIR ',i1/,
1003 . ' STIFFNESS FORMULATION . . . . . . . . . . . ',i5/,
1004 . ' STIFFNESS FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
1005 . ' CONTACT TYPES (1:S1/S1;2:S1/S2;3:N/S . . . ',i5/,
1006 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',i5/,
1007 . ' ANGLE FOR EDGE COMPUTATION (Iedge>0). . . . ',1pg20.13/,
1008C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1009 . ' MINIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1010 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1011 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
1012C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1013 . ' MAXIMUM SECONDARY GAP VALUE . . . . . . . . ',1pg20.13/,
1014 . ' MAXIMUM MAIN GAP VALUE. . . . . . . . . . . ',1pg20.13/,
1015 . ' ZERO GAP FOR SECONDARY SHELL ON FREE EDGE . ',i5/,
1016 . ' initial penetration detection method . . . ',I5/,
1017 . ' maximum initial penetration VALUE . . . . . ',1PG20.13/,
1018C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1019 . ' start/stop times activated by sensor id . . ',I10/,
1020c . ' BUCKET FACTOR . . . . . . . . . . . . . ',1PG20.13/,
1021 . ' de-activation of initial penetrations . . ',I10/,
1022 . ' de-activation flag IF conflict w/ type2 . . ',I10/,
1023 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1024 . ' quadratic damping flag. . . . . . . . . . . ',I5/)
1025C
1026 3525 FORMAT(//
1027 . ' type==24 muti-TYPE impacting ' //,
1028 . ' bound. cond. deleted after impact . . . . . in x dir ',I1/,
1029 . ' secondary node(1:yes 0:no) y dir ',I1/,
1030 . ' z dir ',I1/,
1031 . ' stiffness formulation . . . . . . . . . . . ',I5/,
1032 . ' stiffness factor. . . . . . . . . . . . . . ',1PG20.13/,
1033 . ' contact types(1:s1/s1;2:s1/s2;3:n/s . . . ',I5/,
1034 . ' edge flag . . . . . . . . . . . . . . . . . ',I5/,
1035 . ' angle for edge computation(iedge>0). . . . ',1PG20.13/,
1036C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1037 . ' minimum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1038 . ' maximum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1039 . ' friction factor . . . . . . . . . . . . . . ',1PG20.13/,
1040C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1041 . ' maximum secondary gap VALUE . . . . . . . . ',1PG20.13/,
1042 . ' maximum main gap VALUE. . . . . . . . . . . ',1PG20.13/,
1043 . ' zero gap for secondary shell on free edge . ',I5/,
1044 . ' initial penetration detection method . . . ',I5/,
1045 . ' maximum initial penetration VALUE . . . . . ',1PG20.13/,
1046C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1047 . ' start time . . . . . . . . . . . . . . . . ',1PG20.13/,
1048 . ' stop time . . . . . . . . . . . . . . . . ',1PG20.13/,
1049C . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1PG20.13/,
1050 . ' de-activation of initial penetrations . . ',I10/,
1051 . ' de-activation flag IF conflict w/ type2 . . ',I10/,
1052 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1053 . ' quadratic damping flag. . . . . . . . . . . ',I5/)
1054C
1055C----------
1056 3528 FORMAT(//
1057 . ' type==24 muti-TYPE impacting ' //,
1058 . ' bound. cond. deleted after impact . . . . . in x dir ',I1/,
1059 . ' secondary node(1:yes 0:no) y dir ',I1/,
1060 . ' z dir ',I1/,
1061 . ' nitsche method for contact is used instead of penalty'/,
1062 . ' stiffness formulation . . . . . . . . . . . ',I5/,
1063 . ' stiffness factor. . . . . . . . . . . . . . ',1PG20.13/,
1064 . ' contact types(1:s1/s1;2:s1/s2;3:n/s . . . ',I5/,
1065 . ' edge flag . . . . . . . . . . . . . . . . . ',I5/,
1066 . ' angle for edge computation(iedge>0). . . . ',1PG20.13/,
1067C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1068 . ' minimum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1069 . ' maximum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1070 . ' friction factor . . . . . . . . . . . . . . ',1PG20.13/,
1071C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1072 . ' maximum secondary gap VALUE . . . . . . . . ',1PG20.13/,
1073 . ' maximum main gap VALUE. . . . . . . . . . . ',1PG20.13/,
1074 . ' zero gap for secondary shell on free edge . ',I5/,
1075 . ' initial penetration detection method . . . ',I5/,
1076 . ' maximum initial penetration VALUE . . . . . ',1PG20.13/,
1077C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1078 . ' start/stop times activated by sensor id . . ',I10/,
1079c . ' BUCKET FACTOR . . . . . . . . . . . . . ',1PG20.13/,
1080 . ' de-activation of initial penetrations . . ',I10/,
1081 . ' de-activation flag IF conflict w/ type2 . . ',I10/,
1082 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1083 . ' quadratic damping flag. . . . . . . . . . . ',I5/)
1084C
1085 3529 FORMAT(//
1086 . ' type==24 muti-TYPE impacting ' //,
1087 . ' bound. cond. deleted after impact . . . . . in x dir ',I1/,
1088 . ' secondary node(1:yes 0:no) y dir ',I1/,
1089 . ' z dir ',I1/,
1090 . ' nitsche method for contact is used instead of penalty'/,
1091 . ' stiffness formulation . . . . . . . . . . . ',I5/,
1092 . ' stiffness factor. . . . . . . . . . . . . . ',1PG20.13/,
1093 . ' contact types(1:s1/s1;2:s1/s2;3:n/s . . . ',I5/,
1094 . ' edge flag . . . . . . . . . . . . . . . . . ',I5/,
1095 . ' angle for edge computation(iedge>0). . . . ',1PG20.13/,
1096C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1097 . ' minimum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1098 . ' maximum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1099 . ' friction factor . . . . . . . . . . . . . . ',1PG20.13/,
1100C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1101 . ' maximum secondary gap VALUE . . . . . . . . ',1PG20.13/,
1102 . ' maximum main gap VALUE. . . . . . . . . . . ',1PG20.13/,
1103 . ' zero gap for secondary shell on free edge . ',I5/,
1104 . ' initial penetration detection method . . . ',I5/,
1105 . ' maximum initial penetration VALUE . . . . . ',1PG20.13/,
1106C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1107 . ' start time . . . . . . . . . . . . . . . . ',1PG20.13/,
1108 . ' stop time . . . . . . . . . . . . . . . . ',1PG20.13/,
1109C . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1PG20.13/,
1110 . ' de-activation of initial penetrations . . ',I10/,
1111 . ' de-activation flag IF conflict w/ type2 . . ',I10/,
1112 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1113 . ' quadratic damping flag. . . . . . . . . . . ',I5/)
1114C----------
1115C
1116 3500 FORMAT(/
1117 . ' stiffness based of time step and masses :'/,
1118 . ' scale factor . . . . . . . . . . . . . . . . . ',1PG20.13/,
1119 . ' time step . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1120 . ' flag for penalty stiffness . . . . . . . . . . ',1PG20.13/)
1121C
1122 5030 FORMAT(/
1123 . ' INTERFACE friction model. . . . . . . . . ',I10)
1124 5040 FORMAT(' press-fit duration time . . . . . . . . . ',1PG20.13/)
1125C
1126
1127 END
#define my_real
Definition cppsort.cpp:32
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
#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_type24(ipari, stfac, frigap, noint, ni, igrnod, igrsurf, xfiltr, fric_p, def_inter, sensors, nom_opt, unitab, lsubmodel, titr, nom_optfric, intbuf_fric_tab, parameters, npari, nparir, itherm_fe, intheat)
subroutine inter_dcod_friction(ntyp, ni, ipari, nom_opt, nom_optfric, intbuf_fric_tab)
subroutine inter_dcod_sensor(ntyp, ni, ipari, nom_opt, sensors)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
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 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 static(v, vr, a, ar, ms, in, igrnod, weight_md, wfext)
Definition static.F:33