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,J,L,IBC1, IBC2, IBC3, IBUC, NOINT, NTYP, IBID,
100 . inacti, ibc1m, ibc2m, ibc3m, igsti, ivis2,is1, is2,
101 . ilev, igap,multimp,hiera,mfrot,ifq,ibag,modfr,ierr1,
102 . iflagunit,isym,iedge,nod1,idum,ignore,idel24,kk,ii,
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,gapmax,stmin,stmax,stiff,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=40)::MESS
113 CHARACTER(LEN=NCHARTITLE)::MSGTITL
114 CHARACTER(LEN=NCHARKEY)::OPT,KEY,KEY1
115 CHARACTER(LEN=NCHARFIELD)::BCFLAG,BCFLAGM
116!
117 INTEGER, DIMENSION(:), POINTER :: INGR2USR
118C-----------------------------------------------
119C E x t e r n a l F u n c t i o n s
120C-----------------------------------------------
121 INTEGER NGR2USR
122 LOGICAL IS_AVAILABLE
123C-----------------------------------------------
124C=======================================================================
125C READING PENALTY INTERFACE /INTER/TYPE24
126C=======================================================================
127
128C Initializations
129 is1=0
130 is2=0
131 ibc1=0
132 ibc2=0
133 ibc3=0
134 ibc1m=0
135 ibc2m=0
136 ibc3m=0
137 ibuc=0
138 mfrot=0
139 ifq=0
140 ibag=0
141 igsti = 0
142 ilev=0
143 idsens = 0
144 idelkeep=0
145 intfric = 0
146 nod1 = 0
147 intkg = 0
148 flagremnod = 0
149 multimp = 0
150 icurv = 0
151 intply = 0
152 irem24i2 = 0
153 intth = 0
154 idel24= 0
155 intnitsche = 0
156 iadm = 0
157 iform = 0
158 ivis2=0
159 ipstif = 0
160
161C-------for the moment
162C IGSTI = 0
163 ibag = 0
164 multimpe = 0
165C
166 stopt=ep30
167 inacti = 0
168 viscf = zero
169 fric = zero
170 gap = zero
171 gapscale = zero
172 startt = zero
173 visc = zero
174 xfiltr = zero
175 DO i = 1, 10
176 fric_p(i) = zero
177 ENDDO
178 c1=zero
179 c2=zero
180 c3=zero
181 c4=zero
182 c5=zero
183 c6=zero
184
185 gapscale = zero
186 percent_size = zero
187 edg_angl = zero
188 gapmax_s = zero
189 gapmax_m = zero
190 penmax = zero
191 penmin = zero
192 eten_m = zero
193 rsth = ep30
194 fheat= one
195 tint = zero
196 stfacm= zero
197C
198 iassign = 1
199C
200 ntyp = 24
201 ipari(15)=noint
202 ipari(7)=ntyp
203C
204 is_available = .false.
205C
206C--------------------------------------------------
207C EXTRACT DATAS (INTEGER VALUES)
208C--------------------------------------------------
209 CALL hm_get_intv('secondaryentityids',isu1,is_available,lsubmodel)
210 CALL hm_get_intv('mainentityids',isu2,is_available,lsubmodel)
211 CALL hm_get_intv('Istf',igsti,is_available,lsubmodel)
212 CALL hm_get_intv('Irem_i2',irem24i2,is_available,lsubmodel)
213 CALL hm_get_intv('TYPE24_Idel',idel24,is_available,lsubmodel)
214
215 CALL hm_get_intv('grnod_id',NOD1,IS_AVAILABLE,LSUBMODEL)
216 CALL HM_GET_INTV('type24_iedge',IEDGE,IS_AVAILABLE,LSUBMODEL)
217 CALL HM_GET_INTV('ipstif',IPSTIF,IS_AVAILABLE,LSUBMODEL)
218C
219 CALL HM_GET_INTV('igap',IGAP0,IS_AVAILABLE,LSUBMODEL)
220 CALL HM_GET_INTV('ipen',IPEN0,IS_AVAILABLE,LSUBMODEL)
221C
222 CALL HM_GET_INTV('deactivate_x_bc',IBC1,IS_AVAILABLE,LSUBMODEL)
223 CALL HM_GET_INTV('deactivate_y_bc',IBC2,IS_AVAILABLE,LSUBMODEL)
224 CALL HM_GET_INTV('deactivate_z_bc',IBC3,IS_AVAILABLE,LSUBMODEL)
225
226 CALL HM_GET_INTV('inactiv',INACTI,IS_AVAILABLE,LSUBMODEL)
227C
228 CALL HM_GET_INTV('ifric',MFROT,IS_AVAILABLE,LSUBMODEL)
229 CALL HM_GET_INTV('ifiltr',IFQ,IS_AVAILABLE,LSUBMODEL)
230 CALL HM_GET_INTV('isensor',IDSENS,IS_AVAILABLE,LSUBMODEL)
231 CALL HM_GET_INTV('fric_id',INTFRIC,IS_AVAILABLE,LSUBMODEL)
232C
233C--------------------------------------------------
234C EXTRACT DATAS (REAL VALUES)
235C--------------------------------------------------
236 CALL HM_GET_FLOATV('gap1',GAPMAX_S,IS_AVAILABLE,LSUBMODEL,UNITAB)
237 CALL HM_GET_FLOATV('gap2',GAPMAX_M,IS_AVAILABLE,LSUBMODEL,UNITAB)
238C
239 CALL HM_GET_FLOATV('stmin',STMIN,IS_AVAILABLE,LSUBMODEL,UNITAB)
240 CALL HM_GET_FLOATV('stmax',STMAX,IS_AVAILABLE,LSUBMODEL,UNITAB)
241 CALL HM_GET_FLOATV('type24_edge_angle',EDG_ANGL,IS_AVAILABLE,LSUBMODEL,UNITAB)
242 CALL HM_GET_FLOATV('ipen_max',PENMAX,IS_AVAILABLE,LSUBMODEL,UNITAB)
243 CALL HM_GET_FLOATV('ipen_min',PENMIN,IS_AVAILABLE,LSUBMODEL,UNITAB)
244 CALL HM_GET_FLOATV('stfac_mdt',STFACM,IS_AVAILABLE,LSUBMODEL,UNITAB)
245C
246 CALL HM_GET_FLOATV('stfac',STFAC,IS_AVAILABLE,LSUBMODEL,UNITAB)
247 CALL HM_GET_FLOATV('fric',FRIC,IS_AVAILABLE,LSUBMODEL,UNITAB)
248 CALL HM_GET_FLOATV('tstart',STARTT,IS_AVAILABLE,LSUBMODEL,UNITAB)
249 CALL HM_GET_FLOATV('tstop',STOPT,IS_AVAILABLE,LSUBMODEL,UNITAB)
250C
251 CALL HM_GET_FLOATV('stiff_dc',VISC,IS_AVAILABLE,LSUBMODEL,UNITAB)
252 CALL HM_GET_FLOATV('tpressfit',TPFIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
253C
254 CALL HM_GET_FLOATV('xfreq',ALPHA,IS_AVAILABLE,LSUBMODEL,UNITAB)
255 CALL HM_GET_FLOATV('dtstif',DTSTIF,IS_AVAILABLE,LSUBMODEL,UNITAB)
256C
257 IF (MFROT>0) THEN
258 CALL HM_GET_FLOATV('c1',C1,IS_AVAILABLE,LSUBMODEL,UNITAB)
259 CALL HM_GET_FLOATV('c2',C2,IS_AVAILABLE,LSUBMODEL,UNITAB)
260 CALL HM_GET_FLOATV('c3',C3,IS_AVAILABLE,LSUBMODEL,UNITAB)
261 CALL HM_GET_FLOATV('c4',C4,IS_AVAILABLE,LSUBMODEL,UNITAB)
262 CALL HM_GET_FLOATV('c5',C5,IS_AVAILABLE,LSUBMODEL,UNITAB)
263 ENDIF
264 IF (MFROT>1) THEN
265 CALL HM_GET_FLOATV('c6',C6,IS_AVAILABLE,LSUBMODEL,UNITAB)
266 ENDIF
267C----- was hiding flag
268 NPREF=0
269C
270C--------------------------------------------------
271C DEFAULT VALUES DEFINITION
272C--------------------------------------------------
273C
274 IPRINT = 0
275
276 KEY1='igsti'
277 CALL DEFINTER(KEY1 ,IGSTI ,IASSIGN ,IPRINT ,
278 . NTYP ,DEF_INTER)
279C
280 KEY1='idel24'
281 CALL DEFINTER(KEY1 ,IDEL24 ,IASSIGN ,IPRINT ,
282 . NTYP ,DEF_INTER)
283C
284 KEY1='iedge'
285 CALL DEFINTER(KEY1 ,IEDGE ,IASSIGN ,IPRINT ,
286 . NTYP ,DEF_INTER)
287C
288 KEY1='igap0'
289 CALL DEFINTER(KEY1 ,IGAP0 ,IASSIGN ,IPRINT ,
290 . NTYP ,DEF_INTER)
291C
292 KEY1='ipen0'
293 CALL DEFINTER(KEY1 ,IPEN0 ,IASSIGN ,IPRINT ,
294 . NTYP ,DEF_INTER)
295C
296 KEY1='inacti'
297 CALL DEFINTER(KEY1 ,INACTI ,IASSIGN ,IPRINT ,
298 . NTYP ,DEF_INTER)
299C
300C--------------------------------------------------
301C CHECKS And Storage IPARI FRIGAP
302C--------------------------------------------------
303C
304C
305C....* Card1 :flags *.............
306C
307
308C
309C....* CHECKS *.............
310
311 IF (IREM24I2==0) THEN
312 IREM24I2=1
313c IF (IIMPLICIT>0) IREM24I2=1
314 END IF
315 IF (IREM24I2==3) IREM24I2 = 0
316
317C
318C....* Card2 :Gaps *.............
319C
320
321 IGAP = 1
322 IPARI(21)=IGAP
323 IPARI(63)=IREM24I2
324C------ consisting w/ manuel
325 IF (IREM24I2==0) IREM24I2 = 3
326
327
328C.....* CHECKS AND Storage IPARI FRIGAP *..........
329C
330C
331C------ILEV =1 : ISU1>0,ISU2=0; IS3>=0
332C 2 : ISU1>0,ISU2>0; IS3>=0
333C 3 : ISU1=0,ISU2>0;IS3>0
334 ILEV=0
335
336.AND. IF(ISU1 /= 0 ISU2 == 0)THEN
337 ILEV = 1
338.AND. ELSEIF(ISU1 /= 0 ISU2 /= 0)THEN
339 ILEV = 2
340 IF (ISU1 == ISU2) THEN
341 ILEV = 1
342 ISU2 = 0
343 CALL ANCMSG(MSGID=1022,
344 . MSGTYPE=MSGWARNING,
345 . ANMODE=ANINFO,
346 . I1=NOINT,
347 . C1=TITR)
348 END IF
349.AND..AND. ELSEIF(ISU1 == 0 ISU2 /= 0 NOD1 /= 0) THEN
350 ILEV = 3
351 ELSE
352 IF(ISU2 == 0) THEN
353 CALL ANCMSG(MSGID=119,
354 . ANMODE=ANINFO,
355 . MSGTYPE=MSGERROR,
356 . I1=NOINT,
357 . C1=TITR)
358 ELSEIF (NOD1 == 0) THEN
359 CALL ANCMSG(MSGID=1001,
360 . ANMODE=ANINFO,
361 . MSGTYPE=MSGERROR,
362 . I1=NOINT,
363 . C1=TITR)
364 ENDIF
365 IS1=0
366 IS2=0
367 END IF
368 ISYM = 1
369
370 SELECT CASE (ILEV)
371 CASE(1)
372 INGR2USR => IGRSURF(1:NSURF)%ID
373 ISU1=NGR2USR(ISU1,INGR2USR,NSURF)
374 ISU2=ISU1
375 IS1=-1
376 IS2=-3
377 CASE(2)
378C----------------if we copy int7--
379 IS1 = 0
380 INGR2USR => IGRSURF(1:NSURF)%ID
381 IS1=NGR2USR(ISU1,INGR2USR,NSURF)
382 IF (IS1==0) THEN
383 CALL ANCMSG(MSGID=1000,
384 . ANMODE=ANINFO_BLIND_1,
385 . MSGTYPE=MSGERROR,
386 . I1=NOINT,
387 . C1=TITR)
388 ELSE
389 ISU1=IS1
390 END IF
391 INGR2USR => IGRSURF(1:NSURF)%ID
392 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
393 IS1=-1
394 IS2=-1
395 CASE(3)
396 INGR2USR => IGRSURF(1:NSURF)%ID
397 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
398 IS1=-2
399 IS2=-1
400 IF (IEDGE > 0 ) THEN
401 IEDGE = 0
402 EDG_ANGL=ZERO
403c CALL ANCWAR(119,ANINFO)
404 END IF
405 END SELECT
406 INGR2USR => IGRNOD(1:NGRNOD)%ID
407 IF(NOD1 /= 0) NOD1=NGR2USR(NOD1,INGR2USR,NGRNOD)
408C------only IEDGE=5 or IEDGE=0
409 IF (IEDGE>0) IEDGE=5
410.OR. IF (IEDGE==4IEDGE==5) THEN
411 IPARI(59)=IEDGE-3
412c IEDGE=MIN(4,IEDGE)
413 END IF
414
415C--------change default EDG_ANGL=135
416.AND. IF((IEDGE>=3) EDG_ANGL==ZERO)
417C + EDG_ANGL=NINTY+ONE
418 + EDG_ANGL=HUNDRED+THIRTY+FIVE
419 FRIGAP(26) = COS((HUNDRED80-EDG_ANGL)*PI/HUNDRED80)
420
421
422C---------Default Istif for implicit
423.AND. IF (IIMPLICIT>0IGSTI==0) IGSTI=4
424
425 IF(IGSTI >= 10) THEN ! Nitsche Method Activation instead of penalty
426 INTNITSCHE = 1
427 IPARI(86) = 1
428 IGSTI = IGSTI - 10
429 IF(INTNITSCHE > 0 ) NITSCHE = 1
430.AND. IF (ILEV /= 1ILEV /= 2) THEN
431 CALL ANCMSG(MSGID=1622,
432 . MSGTYPE=MSGERROR,
433 . ANMODE=ANINFO,
434 . I1=NOINT,
435 . C1=TITR)
436 ENDIF
437 IF (IEDGE > 0) THEN
438 CALL ANCMSG(MSGID=1746,
439 . MSGTYPE=MSGERROR,
440 . ANMODE=ANINFO,
441 . I1=NOINT,
442 . C1=TITR)
443 ENDIF
444 ENDIF
445
446C-------tempo: Isurf <- ILEV=IPARI(20) -----
447
448 IPARI(26)=NOD1
449
450 IPARI(13)=IS1*10+IS2
451 IPARI(45)=ISU1
452 IPARI(46)=ISU2
453
454 IPARI(43)=ISYM
455 IPARI(58)=MIN(4,IEDGE)
456 IPARI(63)=IREM24I2
457
458C------ consisting w/ manuel
459 IF (IREM24I2==0) IREM24I2 = 3
460C--------auto stif w/ Press-fit
461 IF (INACTI==-1) THEN
462 IGSTI = 4
463 ELSEIF (INACTI==-2) THEN ! using high stif
464 IGSTI = 2
465 INACTI=-1
466 END IF
467 IPARI(20)=ILEV
468 IPARI(34)=IGSTI
469 IPARI(47) = INTTH
470 IF(INTTH > 0 ) INTHEAT = 1
471 IF (IIMPLICIT>0) INTKG=1
472C flag to activate update of gap with plyxfem
473 IPARI(66) = INTPLY
474
475C
476C....* Card3 *.............
477C
478
479.OR. IF(IGSTI>1 IGSTI==-1)THEN
480 I7STIFS=1
481 IF(STMAX==ZERO)STMAX=EP30
482 ELSE
483 STMIN = ZERO
484 STMAX = EP30
485 END IF
486
487c IF(IGAP==3)THEN
488c GAPMAX = GAPMAX * FAC_L
489c IF(GAPSCALE==ZERO)GAPSCALE=ONE
490c FRIGAP(13) = GAPSCALE
491c FRIGAP(16) = GAPMAX
492c IF(PERCENT_SIZE==ZERO) PERCENT_SIZE = 0.4
493c END IF
494
495 PERCENT_SIZE=ZERO
496
497C----------- GAPMAX->GAPMAX_S: EP30
498C-----------IGAP0,IPEN0: used only for starter;sharing places w/ int20
499 IPARI(53)=IGAP0
500 IPARI(54)=IPEN0
501c FRIGAP(16) = EP30
502 FRIGAP(17) = STMIN
503 FRIGAP(18) = STMAX
504c FRIGAP(28) = PERCENT_SIZE
505
506 IF(GAPMAX_S==ZERO)GAPMAX_S=EP30
507 IF(GAPMAX_M==ZERO)GAPMAX_M=EP30
508
509C IF(PENMAX==ZERO)PENMAX=EP30
510 IF(PENMIN==ZERO)PENMIN=EM8
511 IF(ETEN_M == ZERO)ETEN_M =TWENTY5*EM03
512 FRIGAP(35) = GAPMAX_S
513 FRIGAP(36) = GAPMAX_M
514 FRIGAP(37) = PENMAX
515 FRIGAP(38) = PENMIN
516 FRIGAP(39) = ETEN_M
517
518 NA1 = 0
519 NA2 = 0
520c IF(ICURV==1)THEN
521c WRITE(IOUT,*)' SPHERICAL CURVATURE:'
522c WRITE(IOUT,*)' NA1 =',NA1,' NA2 =',NA2
523c ELSEIF(ICURV==2)THEN
524c WRITE(IOUT,*)' CYLINDRICAL CURVATURE:'
525c WRITE(IOUT,*)' NA1 =',NA1,' NA2 =',NA2
526c ELSEIF(ICURV == 3)THEN
527c WRITE(IOUT,*)' SURFACE WITH CUBIC CURVATURE'
528c ENDIF
529 IPARI(39) = 0
530 IPARI(40) = NA1
531 IPARI(41) = NA2
532
533C
534C....* Card4 *.............
535C
536
537C
538C.....* CHECKS *.....
539C
540 GAP=ZERO
541C GAP = GAP * FAC_L
542 IF (STOPT == ZERO) STOPT = EP30
543
544C.....* Storage IPARI FRIGAP *.......
545
546 FRIGAP(1)=FRIC
547 FRIGAP(2)=GAP
548 FRIGAP(3)=STARTT
549 FRIGAP(11)=STOPT
550
551C
552C....* Card5 *.............
553C
554
555
556C ----- presfit
557.AND. IF (INACTI==-1IIMPLICIT==0) THEN
558 NPREF=10000
559 IPARI(40) = NPREF
560 ELSE
561 TPFIT=ZERO
562 END IF
563C
564C......* CHECKS AND Storage IPARI FRIGAP *.....
565C
566C Hidden flag no more read using HM reader
567c IF (BCFLAGM(LFIELD-2:LFIELD-2)== '1') IBC1M = 1
568c IF (BCFLAGM(LFIELD-1:LFIELD-1)== '1') IBC2M = 1
569c IF (BCFLAGM(LFIELD :LFIELD )== '1') IBC3M = 1
570
571.AND. IF (IIMPLICIT>0INACTI==0) INACTI=-1
572.AND..AND. IF (INACTI/=0INACTI/=-1INACTI/=5) THEN
573 IF (INACTI>0) THEN
574 INACTI = 5
575 ELSE
576 INACTI = 0
577 END IF
578 CALL ANCMSG(MSGID=1031,
579 . MSGTYPE=MSGWARNING,
580 . ANMODE=ANINFO,
581 . I1=NOINT,
582 . C1=TITR ,
583 . I2=INACTI)
584 END IF
585 IPARI(22)=INACTI
586
587 IF(STFAC==ZERO) THEN
588 STFAC=ONE
589 ENDIF
590 IF(IGSTI==1)STFAC=-STFAC
591
592C------no use of VISCF
593 VISCF=ZERO
594 FRIGAP(15)=VISCF**2
595C-------used for TPFIT
596 FRIGAP(15)=TPFIT
597C default 1: harmonic mass, IVIS2=-1 old: SECONDARY node mass
598 IF (IVIS2==0) THEN
599 IVIS2=1
600 ELSEIF (IVIS2==-1) THEN
601 IVIS2=0
602 END IF
603 IF(VISC==ZERO)THEN
604 IF(IVIS2==5)THEN
605 VISC=ONE
606 ELSE
607 VISC=FIVEEM2
608 ENDIF
609 ENDIF
610 FRIGAP(14)=VISC
611
612 IF (IDEL24 < 0) THEN
613 IDELKEEP=1
614 IDEL24=ABS(IDEL24)
615 END IF
616 IPARI(61)=IDELKEEP
617
618.OR. IF (IDEL24>2N2D==1) IDEL24 = 0
619 IPARI(17)=IDEL24
620
621 IPARI(14)=IVIS2
622
623C------------remove BUMULT
624 BUMULT=ZERO
625 IF(BUMULT==ZERO) THEN
626 BUMULT = BMUL0
627C bmult augmente pour les tres gros modeles et interface 7 ou 20
628
629 IF(NUMNOD > 2500000) THEN
630 BUMULT = BMUL0*TWO
631 ELSEIF(NUMNOD > 1500000) THEN
632 BUMULT = BMUL0*THREE/TWO
633 END IF
634 END IF
635 FRIGAP(4)=BUMULT
636
637C---------
638.OR..AND. IF(IPSTIF >0 IGSTI==7IGSTI/=-1) IPARI(97) = 1
639.AND. IF(IGSTI==7IPSTIF ==0) IPSTIF = 1
640 IF(IGSTI==-1) IPSTIF = 0
641 IPARI(98) = IPSTIF
642.AND. IF(STFACM == ZEROIPARI(97) > 0) STFACM = EM01
643 IF(IPARI(97) > 0) THEN
644 FRIGAP(48) = DTSTIF
645 PARAMETERS%ISTIF_DT = 1
646 FRIGAP(47) = STFACM
647 ELSE
648 DTSTIF = ZERO
649 STFACM = ZERO
650 ENDIF
651
652C
653C....* Card6 *.............
654C
655
656C......* CHECKS *.....
657C
658C IF (MFROT/=0.AND.VISCF==0.0) VISCF=ONE
659 MODFR = 2
660 IF (ALPHA==0.) IFQ = 0
661 IF (MODFR==0) MODFR = 1
662.AND. IF (MODFR==2IFQ<10) IFQ = IFQ + 10
663C IF(MODFR==2)VISCF=ZERO
664 IF (IFQ>0) THEN
665 IF (IFQ==10) XFILTR = ONE
666 IF (MOD(IFQ,10)==1) XFILTR = ALPHA
667 IF (MOD(IFQ,10)==2) XFILTR=FOUR*ATAN2(ONE,ZERO) / ALPHA
668 IF (MOD(IFQ,10)==3) XFILTR=FOUR*ATAN2(ONE,ZERO) * ALPHA
669 IF (XFILTR<ZERO) THEN
670 CALL ANCMSG(MSGID=554,
671 . MSGTYPE=MSGERROR,
672 . ANMODE=ANINFO_BLIND_1,
673 . I1=NOINT,
674 . C1=TITR,
675 . R1=ALPHA)
676.AND. ELSEIF (XFILTR>1MOD(IFQ,10)<=2) THEN
677 CALL ANCMSG(MSGID=554,
678 . MSGTYPE=MSGERROR,
679 . ANMODE=ANINFO_BLIND_1,
680 . I1=NOINT,
681 . C1=TITR,
682 . R1=ALPHA)
683 ENDIF
684 ELSE
685 XFILTR = ZERO
686 ENDIF
687
688.AND..AND. IF (IBAG/=0NVOLU==0 IALELAG == 0) THEN
689 CALL ANCMSG(MSGID=614,
690 . MSGTYPE=MSGWARNING,
691 . ANMODE=ANINFO_BLIND_2,
692 . I1=NOINT,
693 . C1=TITR)
694 IBAG=0
695 ENDIF
696 INTBAG = MAX(INTBAG,IBAG)
697 KCONTACT =MAX(KCONTACT,IBAG)
698
699C-------* Storage IPARI FRIGAP *----------------------------
700 IPARI(30) = MFROT
701 IPARI(31) = IFQ
702 IPARI(32) = IBAG
703C INTBAG = MAX(INTBAG,IBAG)
704 IPARI(72) = INTFRIC
705 IPARI(64) = IDSENS
706
707C
708C....* Card7 : C1...C6 friction data *.............
709C
710
711 FRIC_P(1) = C1
712 FRIC_P(2) = C2
713 FRIC_P(3) = C3
714 FRIC_P(4) = C4
715 FRIC_P(5) = C5
716 FRIC_P(6) = C6
717
718C
719C....* Card9 : Thermal input not available yet *.............
720C
721
722.AND. IF (IADM/=0NADMESH==0) THEN
723 CALL ANCMSG(MSGID=647,
724 . MSGTYPE=MSGWARNING,
725 . ANMODE=ANINFO_BLIND_2,
726 . I1=NOINT,
727 . C1=TITR)
728 IADM=0
729 ENDIF
730.AND. IF (IADM/=0ICURV/=0) THEN
731 CALL ANCMSG(MSGID=648,
732 . MSGTYPE=MSGERROR,
733 . ANMODE=ANINFO,
734 . I1=NOINT,
735 . C1=TITR)
736 ENDIF
737 IPARI(44)=IADM
738 KCONTACT =MAX(KCONTACT,IBAG,IADM)
739C
740 IF(IADM==2)THEN
741 IREC=IREC+1
742 READ(IIN,REC=IREC,ERR=999,FMT='(a)')LINE
743 READ(LINE,ERR=999,FMT=FMT_I_2F) NRADM,PADM,ANGLADM
744 IF(NRADM==0) NRADM =3
745 IF(PADM==ZERO) PADM =ONE
746 ELSE
747 NRADM =1
748 PADM =ONE
749 ANGLADM=ZERO
750 END IF
751 CADM =COS(ANGLADM*PI/HUNDRED80)
752 IPARI(49) =NRADM
753 FRIGAP(24)=PADM
754 FRIGAP(25)=CADM
755
756C
757C....* Card10: Thermal input not available yet *.............
758C
759C
760.AND. IF(ITHERM_FE == 0 INTTH > 0 ) THEN
761 INTHEAT = 0
762 IPARI(47) = 0
763 CALL ANCMSG(MSGID=702,
764 . MSGTYPE=MSGWARNING,
765 . ANMODE=ANINFO,
766 . I1=NOINT,
767 . C1=TITR)
768 ENDIF
769C
770 IF(RSTH == ZERO)RSTH = EP30
771 FRIGAP(20) = ONE/RSTH
772 FRIGAP(21 ) = FHEAT
773 FRIGAP(22 ) = TINT
774 IPARI(48) = IFORM
775
776
777C
778 IPARI(12)=IBUC
779 IPARI(65) = INTKG
780
781
782C FRIGAP(10) is initialized but used only in engine for storing number of couples candidates
783 FRIGAP(10)=FLOAT(0)
784
785 MULTIMP = 4
786 IPARI(23)=MULTIMP
787
788C
789C------------------------------------------------------------
790C RENUMBERING OF FUNCTIONS AND SENSOR - USER TO INTERNAL ID
791C------------------------------------------------------------
792C
793 CALL INTER_DCOD_SENSOR (NTYP,NI,IPARI,NOM_OPT,SENSORS)
794 CALL INTER_DCOD_FRICTION(NTYP,NI,IPARI,NOM_OPT,NOM_OPTFRIC,
795 . INTBUF_FRIC_TAB)
796C
797C------------------------------------------------------------
798C PRINTOUT
799C------------------------------------------------------------
800C
801C........* PRINT DEFAULT VALUES *.....................
802C
803 IPRINT = 1
804C
805 KEY1='igsti'
806 CALL DEFINTER(KEY1 ,IGSTI ,IASSIGN ,IPRINT ,
807 . NTYP ,DEF_INTER)
808C
809 KEY1='iedge'
810 CALL DEFINTER(KEY1 ,IEDGE ,IASSIGN ,IPRINT ,
811 . NTYP ,DEF_INTER)
812C
813 KEY1='inacti'
814 CALL DEFINTER(KEY1 ,INACTI ,IASSIGN ,IPRINT ,
815 . NTYP ,DEF_INTER)
816
817C........* PRINT INTERFACES INPUT *.....................
818
819.AND. IF (INACTI==-1IGSTI==2) INACTI=-2 ! just for printing
820 IDUM =IEDGE
821.AND. IF (IEDGE/=1000IEDGE>0)IDUM =MIN(1,IEDGE)
822
823 IF(INTNITSCHE > 0) THEN
824 IF(IDSENS/=0) THEN
825 WRITE(IOUT,3528)IBC1,IBC2,IBC3,
826 . IGSTI,STFAC,ILEV,IDUM,EDG_ANGL,
827 . STMIN,STMAX,
828 . FRIC,GAPMAX_S,GAPMAX_M,IGAP0,IPEN0,
829 . PENMAX,IDSENS,
830 . INACTI,IREM24I2,VISC,IPARI(14)
831 ELSE
832 WRITE(IOUT,3529)IBC1,IBC2,IBC3,
833 . IGSTI,STFAC,ILEV,IDUM,EDG_ANGL,
834 . STMIN,STMAX,
835 . FRIC,GAPMAX_S,GAPMAX_M,IGAP0,IPEN0,
836 . PENMAX,STARTT,STOPT,
837 . INACTI,IREM24I2,VISC,IPARI(14)
838 ENDIF
839 ELSE
840 IF(IDSENS/=0) THEN
841 WRITE(IOUT,3524)IBC1,IBC2,IBC3,
842 . IGSTI,STFAC,ILEV,IDUM,EDG_ANGL,
843 . STMIN,STMAX,
844 . FRIC,GAPMAX_S,GAPMAX_M,IGAP0,IPEN0,
845 . PENMAX,IDSENS,
846 . INACTI,IREM24I2,VISC,IPARI(14)
847 ELSE
848 WRITE(IOUT,3525)IBC1,IBC2,IBC3,
849 . IGSTI,STFAC,ILEV,IDUM,EDG_ANGL,
850 . STMIN,STMAX,
851 . FRIC,GAPMAX_S,GAPMAX_M,IGAP0,IPEN0,
852 . PENMAX,STARTT,STOPT,
853 . INACTI,IREM24I2,VISC,IPARI(14)
854 ENDIF
855 ENDIF
856 IF(INTPLY > 0) WRITE(IOUT,*)' contact with variable gap'
857 IF(TPFIT > ZERO) WRITE(IOUT,5040) TPFIT
858
859 IF(IDEL24/=3) THEN
860 WRITE(IOUT,'(a,a,i5/)')
861 . ' deletion flag on failure of main element',
862 . ' (1:yes-all/2:yes-any) : ',idel24
863 IF(idelkeep == 1)THEN
864 WRITE(iout,'(A)')
865 . ' IDEL: DO NOT REMOVE NON-CONNECTED NODES FROM SECONDARY SURFACE'
866 ENDIF
867 ENDIF
868C
869 IF(stfacm > 0) WRITE(iout,3500) stfacm,dtstif, ipstif
870C
871 IF(intfric > 0 ) THEN
872 WRITE(iout,5030) intfric
873 ELSE
874 WRITE(iout,1520)mod(ifq,10), xfiltr
875 IF(mfrot==0)THEN
876 WRITE(iout,1524) fric
877 ELSEIF(mfrot==1)THEN
878 WRITE(iout,1515)fric_p(1),fric_p(2),fric_p(3),
879 . fric_p(4),fric_p(5)
880 ELSEIF(mfrot==2)THEN
881 WRITE(iout,1522)fric,fric_p(1),fric_p(2),fric_p(3),
882 . fric_p(4),fric_p(5),fric_p(6)
883 ELSEIF(mfrot==3)THEN
884 WRITE(iout,1523)fric_p(1),fric_p(2),fric_p(3),
885 . fric_p(4),fric_p(5),fric_p(6)
886 ELSEIF(mfrot==4)THEN
887 WRITE(iout,1526) fric,fric_p(1),fric_p(2)
888 ENDIF
889 ENDIF
890C
891 IF(ibag/=1000) THEN
892 WRITE(iout,*)' AIRBAG POROSITY COUPLING ON '
893 ENDIF
894 IF(iadm/=0) THEN
895 WRITE(iout,*)' MESH REFINEMENT CASE OF CONTACT',
896 .' (0:NO/1:DUE TO CURVATURE/2:DUE TO CURVATURE OR PENETRATION)',
897 .' SET TO ',iadm
898 IF(iadm==2)THEN
899 WRITE(iout,1557) nradm,padm,angladm
900 END IF
901 ENDIF
902C
903 IF(intth > 0 ) WRITE(iout,2501) rsth,tint,iform
904
905C--------------------------------------------------------------
906 IF(is1==0)THEN
907 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
908 ELSEIF(is1==1)THEN
909 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
910 ELSEIF(is1==2)THEN
911 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
912 ELSEIF(is1==3)THEN
913 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
914 ELSEIF(is1==4 )THEN
915 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
916 ELSEIF(is1==5 )THEN
917 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
918 ENDIF
919 IF(is2==0)THEN
920 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT'
921 ELSEIF(is2==1)THEN
922 WRITE(iout,'(6x,a)')'main surface input by segments'
923 ELSEIF(IS2==2)THEN
924 WRITE(IOUT,'(6x,a)')'main surface input by nodes'
925 ELSEIF(IS2==3)THEN
926 WRITE(IOUT,'(6x,a)')'main surface input by segments'
927 ELSEIF(IS2==4)THEN
928 WRITE(IOUT,'(6x,a)')'main surface refers ',
929 . 'to hyper-ellipsoidal surface'
930 ENDIF
931C
932C--------------------------------------------------------------
933 1000 FORMAT(/1X,' INTERFACE number :',I10,1X,A)
934C------------
935 RETURN
936 999 CALL FREERR(3)
937 RETURN
938
939
940 1515 FORMAT(//
941 . ' friction model 1 (viscous polynomial)'/,
942 . ' mu = muo + c1 p + c2 v + c3 pv + c4 p^2 + c5 v^2'/,
943 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
944 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
945 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
946 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
947 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
948 . ' tangential pressure limit. . .. . . . . .',1PG20.13/)
949 1522 FORMAT(/
950 . ' friction model 2 (darmstad law) :'/,
951 . ' mu = muo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
952 . ' muo. . . . . . . . . . . . . . . . . . . ',1PG20.13/,
953 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
954 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
955 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
956 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
957 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
958 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
959 1523 FORMAT(/
960 . ' friction model 3 (renard law) :'/,
961 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
962 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
963 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
964 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
965 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
966 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
967 1524 FORMAT(/
968 . ' friction model 0 (coulomb law) :'/,
969 . ' friction coefficient . . . . . . . . . ',1PG20.13/)
970 1525 FORMAT(//
971 . ' friction model 0 (coulomb law) :'/,
972 . ' Function for friction coefficient wrt temperature',I10/,
973 . ' abscissa scale factor on ifuntcf. . . . . ',1PG20.13/,
974 . ' ordinate scale factor on ifuntcf . . . . ',1PG20.13/)
975 1526 FORMAT(/
976 . ' exponential decay friction law '/
977 . ' mu = c1+(MUo-c1)*exp(-c2*v)'/
978 . ' static coefficient muo . . . . . . . . . ',1PG20.13/,
979 . ' dynamic coefficient c1 . . . . . . . . . ',1PG20.13/,
980 . ' exponential decay coefficient c2 . . . . ',1PG20.13/)
981
982 1518 FORMAT( ' friction formulation: incremental (STIFFNESS) ',
983 . 'formulation')
984 1519 FORMAT( ' friction formulation: total (VISCOUS) ',
985 . 'formulation')
986 1520 FORMAT(
987 . ' friction filtering flag. . . . . . . . . ',I10/,
988 . ' filtering factor . . . . . . . . . . . . ',1PG20.13)
989 1557 FORMAT(
990 .' number of elements within a 90 degrees fillet ',I5/,
991 .' --------------------------------------------- '/,
992 .' criteria for refinement due to penetration : '/,
993 .' ------------------------------------------ '/,
994 .' minimum percentage of penetration ',
995 . 1PG20.13/,
996 .' maximum angle on main side at contact location ',
997 . 1PG20.13//)
998C----------
999 2501 FORMAT(//
1000 . ' type==7 thermal interface ' //,
1001 . ' heat conduction per surface unit. . . . . ',1PG20.13/,
1002 . ' interface temperature . . . . . . . . . . ',1PG20.13/,
1003 . ' formulation choice : . . . . . . . . . . . . ',i10,/,
1004 . ' 0 : heat transfer between shells(SECONDARY side)',/,
1005 . ' and constant temperature in interface',/,
1006 . ' 1 : heat Exchange between pieces in contact')
1007C----------change message here
1008 3524 FORMAT(//
1009 . ' TYPE==24 MUTI-TYPE IMPACTING ' //,
1010 . ' BOUND. COND. DELETED AFTER IMPACT . . . . . IN X DIR ',i1/,
1011 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
1012 . ' Z DIR ',i1/,
1013 . ' STIFFNESS FORMULATION . . . . . . . . . . . ',i5/,
1014 . ' STIFFNESS FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
1015 . ' CONTACT TYPES (1:S1/S1;2:S1/S2;3:N/S . . . ',i5/,
1016 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',i5/,
1017 . ' angle for edge computation(iedge>0). . . . ',1pg20.13/,
1018C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1019 . ' MINIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1020 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1021 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
1022C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1023 . ' MAXIMUM SECONDARY GAP VALUE . . . . . . . . ',1pg20.13/,
1024 . ' MAXIMUM MAIN GAP VALUE. . . . . . . . . . . ',1pg20.13/,
1025 . ' ZERO GAP FOR SECONDARY SHELL ON FREE EDGE . ',i5/,
1026 . ' INITIAL PENETRATION DETECTION METHOD . . . ',i5/,
1027 . ' MAXIMUM INITIAL PENETRATION VALUE . . . . . ',1pg20.13/,
1028C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1029 . ' START/STOP TIMES activated by SENSOR ID . . ',i10/,
1030c . ' BUCKET FACTOR . . . . . . . . . . . . . ',1PG20.13/,
1031 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
1032 . ' DE-ACTIVATION FLAG IF CONFLICT W/ TYPE2 . . ',i10/,
1033 . ' CRITICAL DAMPING FACTOR . . . . . . . . . . ',1pg20.13/,
1034 . ' QUADRATIC DAMPING FLAG. . . . . . . . . . . ',i5/)
1035C
1036 3525 FORMAT(//
1037 . ' TYPE==24 MUTI-TYPE IMPACTING ' //,
1038 . ' BOUND. COND. DELETED AFTER IMPACT . . . . . IN X DIR ',i1/,
1039 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
1040 . ' Z DIR ',i1/,
1041 . ' STIFFNESS FORMULATION . . . . . . . . . . . ',i5/,
1042 . ' STIFFNESS FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
1043 . ' CONTACT TYPES (1:S1/S1;2:S1/S2;3:N/S . . . ',i5/,
1044 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',i5/,
1045 . ' ANGLE FOR EDGE COMPUTATION (Iedge>0). . . . ',1pg20.13/,
1046C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1047 . ' MINIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1048 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1049 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
1050C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1051 . ' MAXIMUM SECONDARY GAP VALUE . . . . . . . . ',1pg20.13/,
1052 . ' MAXIMUM MAIN GAP VALUE. . . . . . . . . . . ',1pg20.13/,
1053 . ' ZERO GAP FOR SECONDARY SHELL ON FREE EDGE . ',i5/,
1054 . ' INITIAL PENETRATION DETECTION METHOD . . . ',i5/,
1055 . ' MAXIMUM INITIAL PENETRATION VALUE . . . . . ',1pg20.13/,
1056C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1057 . ' START TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
1058 . ' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
1059C . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1PG20.13/,
1060 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
1061 . ' DE-ACTIVATION FLAG IF CONFLICT W/ TYPE2 . . ',i10/,
1062 . ' CRITICAL DAMPING FACTOR . . . . . . . . . . ',1pg20.13/,
1063 . ' QUADRATIC DAMPING FLAG. . . . . . . . . . . ',i5/)
1064C
1065C----------
1066 3528 FORMAT(//
1067 . ' TYPE==24 MUTI-TYPE IMPACTING ' //,
1068 . ' BOUND. COND. DELETED AFTER IMPACT . . . . . IN X DIR ',i1/,
1069 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
1070 . ' Z DIR ',i1/,
1071 . ' NITSCHE METHOD FOR CONTACT IS USED INSTEAD OF PENALTY'/,
1072 . ' STIFFNESS FORMULATION . . . . . . . . . . . ',i5/,
1073 . ' STIFFNESS FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
1074 . ' CONTACT TYPES (1:S1/S1;2:S1/S2;3:N/S . . . ',i5/,
1075 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',i5/,
1076 . ' ANGLE FOR EDGE COMPUTATION (Iedge>0). . . . ',1pg20.13/,
1077C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1078 . ' MINIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1079 . ' MAXIMUM STIFFNESS. . . . . . . . . . . . . ',1pg20.13/,
1080 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
1081C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1082 . ' MAXIMUM SECONDARY GAP VALUE . . . . . . . . ',1pg20.13/,
1083 . ' MAXIMUM MAIN GAP VALUE. . . . . . . . . . . ',1pg20.13/,
1084 . ' ZERO GAP FOR SECONDARY SHELL ON FREE EDGE . ',i5/,
1085 . ' INITIAL PENETRATION DETECTION METHOD . . . ',i5/,
1086 . ' MAXIMUM INITIAL PENETRATION VALUE . . . . . ',1pg20.13/,
1087C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1088 . ' START/STOP TIMES activated by SENSOR ID . . ',i10/,
1089c . ' BUCKET FACTOR . . . . . . . . . . . . . ',1PG20.13/,
1090 . ' de-activation of initial penetrations . . ',I10/,
1091 . ' de-activation flag IF conflict w/ type2 . . ',I10/,
1092 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1093 . ' quadratic damping flag. . . . . . . . . . . ',I5/)
1094C
1095 3529 FORMAT(//
1096 . ' type==24 muti-TYPE impacting ' //,
1097 . ' bound. cond. deleted after impact . . . . . in x dir ',I1/,
1098 . ' secondary node(1:yes 0:no) y dir ',I1/,
1099 . ' z dir ',I1/,
1100 . ' nitsche method for contact is used instead of penalty'/,
1101 . ' stiffness formulation . . . . . . . . . . . ',I5/,
1102 . ' stiffness factor. . . . . . . . . . . . . . ',1PG20.13/,
1103 . ' contact types(1:s1/s1;2:s1/s2;3:n/s . . . ',I5/,
1104 . ' edge flag . . . . . . . . . . . . . . . . . ',i5/,
1105 . ' angle for edge computation(iedge>0). . . . ',1PG20.13/,
1106C . ' MAIN SEG EXTENSION . . . . . . . . . . ',1PG20.13/,
1107 . ' minimum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1108 . ' maximum stiffness. . . . . . . . . . . . . ',1PG20.13/,
1109 . ' friction factor . . . . . . . . . . . . . . ',1PG20.13/,
1110C . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',I5/,
1111 . ' maximum secondary gap VALUE . . . . . . . . ',1PG20.13/,
1112 . ' maximum main gap VALUE. . . . . . . . . . . ',1PG20.13/,
1113 . ' zero gap for secondary shell on free edge . ',I5/,
1114 . ' initial penetration detection method . . . ',I5/,
1115 . ' maximum initial penetration VALUE . . . . . ',1PG20.13/,
1116C . ' MINIMUM INITIAL PENETRATION VALUE . . . . ',1PG20.13/,
1117 . ' start time . . . . . . . . . . . . . . . . ',1PG20.13/,
1118 . ' stop time . . . . . . . . . . . . . . . . ',1PG20.13/,
1119C . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1PG20.13/,
1120 . ' de-activation of initial penetrations . . ',I10/,
1121 . ' de-activation flag IF conflict w/ type2 . . ',I10/,
1122 . ' critical damping factor . . . . . . . . . . ',1PG20.13/,
1123 . ' quadratic damping flag. . . . . . . . . . . ',I5/)
1124C----------
1125C
1126 3500 FORMAT(/
1127 . ' stiffness based of time step and masses :'/,
1128 . ' scale factor . . . . . . . . . . . . . . . . . ',1PG20.13/,
1129 . ' time step . . . . . . . . . . . . . . . . . . ',1PG20.13/,
1130 . ' flag for penalty stiffness . . . . . . . . . . ',1PG20.13/)
1131C
1132 5030 FORMAT(/
1133 . ' INTERFACE friction model. . . . . . . . . ',I10)
1134 5040 FORMAT(' press-fit duration time . . . . . . . . . ',1PG20.13/)
1135C
1136
1137 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
#define alpha
Definition eval.h:35
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_sensor(ntyp, ni, ipari, nom_opt, sensors)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
integer nsubmod
int main(int argc, char *argv[])
program starter
Definition starter.F:39
subroutine static(v, vr, a, ar, ms, in, igrnod, weight_md, wfext)
Definition static.F:33