44
45
46
52
53
54
55#include "implicit_f.inc"
56
57
58
59#include "scr17_c.inc"
60#include "sphcom.inc"
61
62
63
64 INTEGER,INTENT(IN) :: NPARI, NPARIR
65 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
66 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
67 INTEGER NOM_OPT(LNOPT1,*)
68 INTEGER ISU1,ISU2,ILAGM,NI, NOINT
69 INTEGER IPARI(NPARI),DEF_INTER(100)
71 my_real frigap(nparir),fric_p(10)
72 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
73
74 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
75 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
76
77
78
79#include "scr06_c.inc"
80#include "com01_c.inc"
81#include "com04_c.inc"
82#include "units_c.inc"
83#include "scr12_c.inc"
84
85
86
87 INTEGER I,J,L,IBC1, IBC2, IBC3, NTYP,IDELKEEP,
88 . INACTI, IBC1M, IBC2M, IBC3M, IGSTI, IVIS2,
89 . IS1, IS2, ISU10,ISU20,ILEV, IGAP,MULTIMP,MFROT,IFQ,
90 . IBAG,IDEL7N,MODFR,IADM,IFORM,IASSIGN,FIELD6,IPRINT
92 . fric,gap,startt,bumult,stopt,c1,c2,c3,c4,c5,c6,
93 .
alpha,gapscale,gapmax,stmin,stmax,
94 . visc,viscf
95
96 INTEGER, DIMENSION(:), POINTER :: INGR2USR
97 CHARACTER(LEN=NCHARKEY) :: KEY1
98
99
100
101 INTEGER USR2SYS,SUR2USR,NGR2USR
102 LOGICAL IS_AVAILABLE
103
104
105
106
107
108
109 is1=0
110 is2=0
111 ibc1=0
112 ibc2=0
113 ibc3=0
114 ibc1m=0
115 ibc2m=0
116 ibc3m=0
117 mfrot=0
118 ifq=0
119 ibag=0
120 igsti = 0
121 ivis2 = 0
122
123 iadm =0
124
125 stopt=ep30
126 inacti = 0
127 viscf = zero
128
129 fric = zero
130 gap = zero
131 gapscale = zero
132 startt = zero
133 visc = zero
134 xfiltr = zero
135 DO i = 1, 10
136 fric_p(i) = zero
137 ENDDO
138 idel7n = 0
139 idelkeep=0
140
141 c1=zero
142 c2=zero
143 c3=zero
144 c4=zero
145 c5=zero
146 c6=zero
147
148 iform = 0
149
150 gapscale = zero
151 iassign = 1
152
153
154
155
156
157 ilagm = 2
158 ipari(33) =
max(0,ilagm)
159 nom_opt(1,ni)=noint
160 ntyp = 7
161 ipari(7)=ntyp
162 ipari(15)=noint
163
164
165 WRITE(iout,1000) noint,trim(titr)
166
167 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,ni),ltitr)
168
169
170
171
172 is_available = .false.
173
174
175
176
177 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
178 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
179 CALL hm_get_intv('istf
',IGSTI,IS_AVAILABLE,LSUBMODEL)
180 CALL HM_GET_INTV('igap',IGAP,IS_AVAILABLE,LSUBMODEL)
181 CALL HM_GET_INTV('multimp',FIELD6,IS_AVAILABLE,LSUBMODEL)
182 CALL HM_GET_INTV('ibag',IBAG,IS_AVAILABLE,LSUBMODEL)
183 CALL HM_GET_INTV('idel7',IDEL7N,IS_AVAILABLE,LSUBMODEL)
184
185 CALL HM_GET_INTV('deactivate_x_bc',IBC1,IS_AVAILABLE,LSUBMODEL)
186 CALL HM_GET_INTV('deactivate_y_bc',IBC2,IS_AVAILABLE,LSUBMODEL)
187 CALL HM_GET_INTV('deactivate_z_bc',IBC3,IS_AVAILABLE,LSUBMODEL)
188 CALL HM_GET_INTV('inactiv',INACTI,IS_AVAILABLE,LSUBMODEL)
189
190 CALL HM_GET_INTV('ifric',MFROT,IS_AVAILABLE,LSUBMODEL)
191 CALL HM_GET_INTV('ifiltr',IFQ,IS_AVAILABLE,LSUBMODEL)
192 CALL HM_GET_INTV('iform',MODFR,IS_AVAILABLE,LSUBMODEL)
193
194
195
196
197 CALL HM_GET_FLOATV('gapscale',GAPSCALE,IS_AVAILABLE,LSUBMODEL,UNITAB)
198 CALL HM_GET_FLOATV('gapmax',GAPMAX,IS_AVAILABLE,LSUBMODEL,UNITAB)
199
200 CALL HM_GET_FLOATV('stmin',STMIN,IS_AVAILABLE,LSUBMODEL,UNITAB)
201 CALL HM_GET_FLOATV('stmax',STMAX,IS_AVAILABLE,LSUBMODEL,UNITAB)
202
203 CALL HM_GET_FLOATV('type7_scale',STFAC,IS_AVAILABLE,LSUBMODEL,UNITAB)
204 CALL HM_GET_FLOATV('fric',FRIC,IS_AVAILABLE,LSUBMODEL,UNITAB)
205 CALL HM_GET_FLOATV('gap',GAP,IS_AVAILABLE,LSUBMODEL,UNITAB)
206 CALL HM_GET_FLOATV('tstart',STARTT,IS_AVAILABLE,LSUBMODEL,UNITAB)
207 CALL HM_GET_FLOATV('tstop',STOPT,IS_AVAILABLE,LSUBMODEL,UNITAB)
208
209 CALL HM_GET_FLOATV('stiff_dc',VISC,IS_AVAILABLE,LSUBMODEL,UNITAB)
210 CALL HM_GET_FLOATV('fric_dc',VISCF,IS_AVAILABLE,LSUBMODEL,UNITAB)
211 CALL HM_GET_FLOATV('sort_fact',BUMULT,IS_AVAILABLE,LSUBMODEL,UNITAB)
212
213 CALL HM_GET_FLOATV('xfreq',ALPHA,IS_AVAILABLE,LSUBMODEL,UNITAB)
214
215 IF (MFROT>0) THEN
216 CALL HM_GET_FLOATV('c1',C1,IS_AVAILABLE,LSUBMODEL,UNITAB)
217 CALL HM_GET_FLOATV('c2',C2,IS_AVAILABLE,LSUBMODEL,UNITAB)
218 CALL HM_GET_FLOATV('c3',C3,IS_AVAILABLE,LSUBMODEL,UNITAB)
219 CALL HM_GET_FLOATV('c4',C4,IS_AVAILABLE,LSUBMODEL,UNITAB)
220 CALL HM_GET_FLOATV('c5',C5,IS_AVAILABLE,LSUBMODEL,UNITAB)
221 ENDIF
222 IF (MFROT>1) THEN
223 CALL HM_GET_FLOATV('c6',C6,IS_AVAILABLE,LSUBMODEL,UNITAB)
224 ENDIF
225
226
227
228
229
230
231 IPRINT = 0
232
233 KEY1='igsti'
234 CALL DEFINTER(KEY1 ,IGSTI ,IASSIGN ,IPRINT ,
235 . NTYP ,DEF_INTER)
236
237 KEY1='igap'
238 CALL DEFINTER(KEY1 ,IGAP ,IASSIGN ,IPRINT ,
239 . NTYP ,DEF_INTER)
240
241 KEY1='ibag'
242 CALL DEFINTER(KEY1 ,IBAG ,IASSIGN ,IPRINT ,
243 . NTYP ,DEF_INTER)
244
245 KEY1='idel'
246 CALL DEFINTER(KEY1 ,IDEL7N ,IASSIGN ,IPRINT ,
247 . NTYP ,DEF_INTER)
248
249 KEY1='inacti'
250 CALL DEFINTER(KEY1 ,INACTI,IASSIGN ,IPRINT ,
251 . NTYP ,DEF_INTER)
252
253 KEY1='modfr'
254 CALL DEFINTER(KEY1 ,MODFR,IASSIGN ,IPRINT ,
255 . NTYP ,DEF_INTER)
256
257
258
259
260
261 IF(ISU2==0) THEN
262 CALL ANCMSG(MSGID=119,
263 . MSGTYPE=MSGERROR,
264 . ANMODE=ANINFO,
265 . I1=NOINT,
266 . C1=TITR)
267 ENDIF
268!
269 IF(ISU1==0)THEN
270 ISU1=ISU2
271 IS1 =1
272 ENDIF
273 IS2=1
274 INGR2USR => IGRSURF(1:NSURF)%ID
275 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
276 IF(ISU1/=0)THEN
277 INGR2USR => IGRNOD(1:NGRNOD)%ID
278 ISU1=NGR2USR(ISU1,INGR2USR,NGRNOD)
279 IS1 =2
280 ENDIF
281
282
283 IPARI(45)=ISU1
284 IPARI(46)=ISU2
285 IPARI(13)=IS1*10+IS2
286 IPARI(34)=IGSTI
287 IPARI(21)=IGAP
288
289
290
291
292
293
294 IF(IGAP>=2)THEN
295 IF(GAPSCALE==ZERO)GAPSCALE=ONE
296 FRIGAP(13) = GAPSCALE
297 FRIGAP(16) = GAPMAX
298 END IF
299 IF(FRIGAP(16)==ZERO)THEN
300 GAPMAX=EP30
301 FRIGAP(16)=GAPMAX
302 END IF
303
304
305
306 IF(IGSTI>1)THEN
307 I7STIFS=1
308 IF(STMAX==ZERO)STMAX=EP30
309 FRIGAP(17) = STMIN
310 FRIGAP(18) = STMAX
311 ELSE
312 STMIN = ZERO
313 STMAX = EP30
314 END IF
315
316
317
318
319 FRIGAP(2)=GAP
320 IF (STOPT == ZERO) STOPT = EP30
321 FRIGAP(3)=STARTT
322 FRIGAP(11)=STOPT
323
324
325
326
327 IF (STFAC == ZERO ) STFAC = ONE
328 IF(IGSTI==1)STFAC=-STFAC
329
330.AND. IF(FRIC/=ZEROVISCF==ZERO)VISCF=ONE
331 IF(VISC==ZERO)THEN
332 IF(IVIS2==5)THEN
333 VISC=ONE
334 ELSE
335 VISC=FIVEEM2
336 ENDIF
337 ENDIF
338 IF (IDEL7N < 0) THEN
339 IDELKEEP=1
340 IDEL7N=ABS(IDEL7N)
341 END IF
342 IPARI(61)=IDELKEEP
343.OR. IF (IDEL7N>2N2D==1) IDEL7N = 0
344
345 IF(BUMULT==ZERO) THEN
346 BUMULT = BMUL0
347
348 IF(NUMNOD > 2500000) THEN
349 BUMULT = BMUL0*TWO
350 ELSEIF(NUMNOD > 1500000) THEN
351 BUMULT = BMUL0*THREE/TWO
352 END IF
353 END IF
354
355
356 IPARI(22)=INACTI
357 IPARI(17)=IDEL7N
358 IPARI(14)=IVIS2
359 IPARI(11)=4*IBC1+2*IBC2+IBC3 + 8 *(4*IBC1M+2*IBC2M+IBC3M)
360 FRIGAP(14)=VISC
361 FRIGAP(4)=BUMULT
362
363
364
365
366.AND. IF (MFROT/=0VISCF==0.0) VISCF=ONE
367 IF (ALPHA==0.) IFQ = 0
368
369 IF (MODFR==0) MODFR = 1
370.AND. IF (MODFR==2IFQ<10) IFQ = IFQ + 10
371 IF (MODFR==2)VISCF=ZERO
372
373 IF (IFQ>0) THEN
374 IF (IFQ==10) XFILTR = ONE
375 IF (MOD(IFQ,10)==1) XFILTR = ALPHA
376 IF (MOD(IFQ,10)==2) XFILTR=FOUR*ATAN2(ONE,ZERO) / ALPHA
377 IF (MOD(IFQ,10)==3) XFILTR=FOUR*ATAN2(ONE,ZERO) * ALPHA
378 IF (XFILTR<ZERO) THEN
379 CALL ANCMSG(MSGID=554,
380 . MSGTYPE=MSGERROR,
381 . ANMODE=ANINFO_BLIND_1,
382 . I1=NOINT,
383 . C1=TITR,
384 . R1=ALPHA)
385.AND. ELSEIF (XFILTR>1MOD(IFQ,10)<=2) THEN
386 CALL ANCMSG(MSGID=554,
387 . MSGTYPE=MSGERROR,
388 . ANMODE=ANINFO_BLIND_1,
389 . I1=NOINT,
390 . C1=TITR,
391 . R1=ALPHA)
392 ENDIF
393 ELSE
394 XFILTR = ZERO
395 ENDIF
396
397
398
399
400 IPARI(30)=MFROT
401 IPARI(31) = IFQ
402 FRIGAP(1)=FRIC
403 FRIGAP(15)=VISCF**2
404 FRIC_P(1) = C1
405 FRIC_P(2) = C2
406 FRIC_P(3) = C3
407 FRIC_P(4) = C4
408 FRIC_P(5) = C5
409 FRIC_P(6) = C6
410
411.AND..AND..AND. IF (IBAG/=0NVOLU==0IALELAG==0NSPHSOL==0) THEN
412 CALL ANCMSG(MSGID=614,
413 . MSGTYPE=MSGWARNING,
414 . ANMODE=ANINFO_BLIND_2,
415 . I1=NOINT,
416 . C1=TITR)
417 IBAG=0
418 ENDIF
419 IPARI(32) = IBAG
420 INTBAG = MAX(INTBAG,IBAG)
421
422 KCONTACT =MAX(KCONTACT,IBAG,IADM)
423
424 MULTIMP = 4
425 IPARI(23)=MULTIMP
426
427
428 FRIGAP(10)=FLOAT(0)
429
430
431
432
433
434
435 IPRINT = 1
436
437
438 WRITE(IOUT,1549)
439
440.AND. IF( (IGAP>=2 IGAP/=1000).
441.AND. . OR.IGSTI>1 IGSTI/=1000)THEN
442 IF(IGSTI==1)THEN
443 WRITE(IOUT,1538)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
444 . STFAC,FRIC,IGAP,GAP,GAPMAX,
445 . GAPSCALE,STARTT,STOPT,
446 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
447 . IPARI(20),MULTIMP
448 ELSE
449 WRITE(IOUT,1548)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
450 . STFAC,IGSTI,STMIN,STMAX,
451 . FRIC,IGAP,GAP,GAPMAX,
452 . GAPSCALE,STARTT,STOPT,
453 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
454 . IPARI(20),MULTIMP
455 ENDIF
456 ELSEIF(STFAC>=ZERO)THEN
457 WRITE(IOUT,1594)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
458 . STFAC,IGAP,GAP,STARTT,STOPT,
459 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
460 . IPARI(20),MULTIMP
461 ELSE
462 WRITE(IOUT,1595)IBC1,IBC2,IBC3,IBC1M,IBC2M,IBC3M,
463 . -STFAC,IGAP,GAP,
464 . STARTT,STOPT,
465 . BUMULT,INACTI,VISC,VISCF,IPARI(14),
466 . IPARI(20),MULTIMP
467 WRITE(IOUT,'(a)')
468 . ' lagrange multiplier with /dt/inter/lag. . '
469 ENDIF
470
471 IF(IDEL7N/=0) THEN
472 WRITE(IOUT,'(a,a,i5/)')
473 . ' deletion flag on failure of
main element
',
474 . ' (1:yes-all/2:yes-any) : ',IDEL7N
475 IF(IDELKEEP == 1)THEN
476 WRITE(IOUT,'(a)')
477 . ' idel: DO not remove non-connected nodes from secondary surface'
478 ENDIF
479 ENDIF
480
481 IF(IFQ>=10) THEN
482 WRITE(IOUT,1518)
483 ELSE
484 WRITE(IOUT,1519)
485 ENDIF
486 WRITE(IOUT,1520)MOD(IFQ,10), XFILTR
487 IF(MFROT==0)THEN
488 WRITE(IOUT,1524) FRIC
489 ELSEIF(MFROT==1)THEN
490 WRITE(IOUT,1515)FRIC_P(1),FRIC_P(2),FRIC_P(3),
491 . FRIC_P(4),FRIC_P(5)
492 ELSEIF(MFROT==2)THEN
493 WRITE(IOUT,1522)FRIC,FRIC_P(1),FRIC_P(2),FRIC_P(3),
494 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
495 ELSEIF(MFROT==3)THEN
496 WRITE(IOUT,1523)FRIC_P(1),FRIC_P(2),FRIC_P(3),
497 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
498 ENDIF
499
500
501 IF(IBAG/=1000) THEN
502 WRITE(IOUT,*)' airbag porosity coupling on '
503 ENDIF
504
505
506 IF(IS1==0)THEN
507 WRITE(IOUT,'(6x,a)')'no secondary surface input'
508 ELSEIF(IS1==1)THEN
509 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
510 ELSEIF(IS1==2)THEN
511 WRITE(IOUT,'(6x,a)')'secondary surface input by nodes'
512 ELSEIF(IS1==3)THEN
513 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
514 ELSEIF(IS1==4 )THEN
515 WRITE(IOUT,'(6x,a)')'secondary side input by bricks'
516 ELSEIF(IS1==5 )THEN
517 WRITE(IOUT,'(6x,a)')'secondary side input by solid elements'
518 ENDIF
519 IF(IS2==0)THEN
520 WRITE(IOUT,'(6x,a)
')'no
main surface input
'
521 ELSEIF(IS2==1)THEN
522 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
523 ELSEIF(IS2==2)THEN
524 WRITE(IOUT,'(6x,a)
')'main surface input by nodes
'
525 ELSEIF(IS2==3)THEN
526 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
527 ELSEIF(IS2==4)THEN
528 WRITE(IOUT,'(6x,a)
')'main surface refers
',
529 . 'to hyper-ellipsoidal surface'
530 ENDIF
531
532
533 1000 FORMAT(/1X,' INTERFACE number :',I10,1X,A)
534
535 RETURN
536
537 1549 FORMAT(//
538 . ' type==7 parallel/auto impacting ' //)
539
540 1538 FORMAT(
541 . ' bound. cond. deleted after impact in x dir ',I1/,
542 . ' secondary node(1:yes 0:no) y dir ',I1/,
543 . ' z dir ',I1/,
544 . ' bound. cond. deleted after impact in x dir ',I1/,
545 . ' main node(1:yes 0:no) y dir
',I1/,
546 . ' z dir ',I1/,
547 . ' constant stiffness. . . . . . . . . . . . ',1PG20.13/,
548 . ' friction factor . . . . . . . . . . . . . ',1pg20.13/,
549 . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
550 . ' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
551 . ' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . ',1pg20.13/,
552 . ' gap scale factor. . . . . . . . . . . . . ',1PG20.13/,
553 . ' start time. . . . . . . . . . . . . . . . ',1PG20.13/,
554 . ' stop time . . . . . . . . . . . . . . . . ',1PG20.13/,
555 . ' bucket factor . . . . . . . . . . . . . . ',1PG20.13/,
556 . ' de-activation of initial penetrations . . ',I10/,
557 . ' critical
damping factor . . . . . . . . .
',1PG20.13/,
558 . ' friction critical
damping factor. . . . .
',1PG20.13/,
559 . ' quadratic
damping flag. . . . . . . . . .
',I5/,
560 . ' formulation level . . . . . . . . . . . . ',I5/,
561 . ' mean possible number of impact/node . . . ',I5/)
562
563 1548 FORMAT(
564 . ' bound. cond. deleted after impact in x dir ',I1/,
565 . ' secondary node(1:yes 0:no) y dir ',I1/,
566 . ' z dir ',I1/,
567 . ' bound. cond. deleted after impact in x dir ',I1/,
568 . ' main node(1:yes 0:no) y dir
',I1/,
569 . ' z dir ',I1/,
570 . ' stiffness factor. . . . . . . . . . . . . ',1PG20.13/,
571 . ' stiffness formulation. . . . . . . . . . ',I4/,
572 .' 2,3,4,5 : stiffness is computed from stiffness on
main side
'/,
573 .' and stiffness at secondary nodes'/,
574 .' 1000 : stiffness is computed from stiffness on
main side
'/,
575 . ' minimum stiffness. . . . . . . . . . . . ',1PG20.13/,
576 . ' maximum stiffness. . . . . . . . . . . . ',1PG20.13/,
577 . ' friction factor . . . . . . . . . . . . . ',1PG20.13/,
578 . ' variable gap flag . . . . . . . . . . . . ',I5/,
579 . ' minimum gap . . . . . . . . . . . . . . . ',1PG20.13/,
580 . ' maximum gap (= 0. <=> no maximum gap) . . ',1PG20.13/,
581 . ' gap scale factor. . . . . . . . . . . . . ',1PG20.13/,
582 . ' start time. . . . . . . . . . . . . . . . ',1PG20.13/,
583 . ' stop time . . . . . . . . . . . . . . . . ',1PG20.13/,
584 . ' bucket factor . . . . . . . . . . . . . . ',1PG20.13/,
585 . ' de-activation of initial penetrations . . ',I10/,
586 . ' critical
damping factor . . . . . . . . .
',1PG20.13/,
587 . ' friction critical
damping factor. . . . .
',1PG20.13/,
588 . ' quadratic
damping flag. . . . . . . . . .
',I5/,
589 . ' formulation level . . . . . . . . . . . . ',I5/,
590 . ' mean possible number of impact/node . . . ',I5/)
591 1594 FORMAT(
592 . ' bound. cond. deleted after impact in x dir ',I1/,
593 . ' secondary node(1:yes 0:no) y dir ',I1/,
594 . ' z dir ',I1/,
595 . ' bound. cond. deleted after impact in x dir ',I1/,
596 . ' main node(1:yes 0:no) y dir
',I1/,
597 . ' z dir ',I1/,
598 . ' stiffness factor. . . . . . . . . . . . . ',1PG20.13/,
599 . ' variable gap flag . . . . . . . . . . . . ',I5/,
600 . ' minimum gap . . . . . . . . . . . . . . . ',1PG20.13/,
601 . ' start time. . . . . . . . . . . . . . . . ',1PG20.13/,
602 . ' stop time . . . . . . . . . . . . . . . . ',1PG20.13/,
603 . ' bucket factor . . . . . . . . . . . . . . ',1PG20.13/,
604 . ' de-activation of initial penetrations . . ',I10/,
605 . ' critical
damping factor . . . . . . . . .
',1PG20.13/,
606 . ' friction critical
damping factor. . . . .
',1PG20.13/,
607 . ' quadratic
damping flag
',I5/,
608 . ' formulation level . . . . . . . . . . . . ',I5/,
609 . ' mean possible number of impact/node . . . ',I5/)
610 1595 FORMAT(
611 . ' bound. cond. deleted after impact in x dir ',I1/,
612 . ' secondary node(1:yes 0:no) y dir ',I1/,
613 . ' z dir ',I1/,
614 . ' bound. cond. deleted after impact in',I1/,
615 . ' main node(1:yes 0:no) y dir
',I1/,
616 . ' z dir ',i1/,
617 . ' CONSTANT STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
618 . ' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
619 . ' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
620 . ' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
621 . ' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
622 . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
623 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
624 . ' MAXIMAL INITIAL PENETRATION FACTOR. . . . ',1pg20.13/,
625 . ' critical
damping factor . . . . . . . . .
',1PG20.13/,
626 . ' friction critical
damping factor. . . . .
',1PG20.13/,
627 . ' quadratic
damping flag. . . . . . . . . .
',I5/,
628 . ' formulation level . . . . . . . . . . . . ',I5/,
629 . ' mean possible number of impact/node . . . ',I5/)
630
631 1518 FORMAT( ' friction formulation: incremental(stiffness) ',
632 . 'formulation')
633 1519 FORMAT( ' friction formulation: total(viscous) ',
634 . 'formulation')
635
636 1515 FORMAT(//
637 . ' friction model 1 (viscous polynomial)'/,
638 . ' mu = muo + c1 p + c2 v + c3 pv + c4 p^2 + c5 v^2'/,
639 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
640 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
641 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
642 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
643 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
644 . ' tangential pressure limit. . .. . . . . .',1PG20.13/)
645 1522 FORMAT(/
646 . ' friction model 2 (darmstad law) :'/,
647 . ' mu = muo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
648 . ' muo. . . . . . . . . . . . . . . . . . . ',1PG20.13/,
649 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
650 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
651 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
652 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
653 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
654 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
655 1523 FORMAT(/
656 . ' friction model 3 (renard law) :'/,
657 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
658 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
659 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
660 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
661 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
662 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
663 1524 FORMAT(/
664 . ' friction model 0 (coulomb law) :'/,
665 . ' friction coefficient . . . . . . . . . ',1PG20.13/)
666
667 1520 FORMAT(
668 . ' friction filtering flag. . . . . . . . . ',I10/,
669 . ' filtering factor . . . . . . . . . . . . ',1PG20.13)
670
671 1557 FORMAT(
672 .' number of elements within a 90 degrees fillet ',I5/,
673 .' --------------------------------------------- '/,
674 .' criteria
for refinement due to penetration :
'/,
675 .' ------------------------------------------ '/,
676 .' minimum percentage of penetration ',
677 . 1PG20.13/,
678 .' maximum angle on
main side at contact location
',
679 . 1PG20.13//)
680
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
integer, parameter ncharkey
int main(int argc, char *argv[])