39 1 IPARI ,STFAC ,FRIGAP ,XFILTR ,FRIC_P ,
40 2 IGRNOD ,IGRSURF ,ILAGM ,UNITAB ,NI ,
41 4 NOM_OPT ,TITR ,DEF_INTER ,NOINT ,LSUBMODEL,
54#include "implicit_f.inc"
63 INTEGER,
INTENT(IN) :: NPARI, NPARIR
64 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
65 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
66 INTEGER NOM_OPT(LNOPT1,*)
67 INTEGER ISU1,ISU2,ILAGM,NI, NOINT
68 INTEGER IPARI(NPARI),DEF_INTER(100)
70 my_real frigap(nparir),fric_p(10)
71 CHARACTER(LEN=NCHARTITLE) :: TITR
73 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
74 TYPE (SURF_) ,
TARGET ,
DIMENSION(NSURF) :: IGRSURF
86 INTEGER I,IBC1, IBC2, IBC3, NTYP,IDELKEEP,
87 . INACTI, IBC1M, IBC2M, IBC3M, IGSTI, IVIS2,
88 . IS1, IS2, IGAP,MULTIMP,MFROT,IFQ,
89 . IBAG,IDEL7N,MODFR,IADM,IFORM,IASSIGN,FIELD6,IPRINT
91 . fric,gap,startt,bumult,stopt,c1,c2,c3,c4,c5,c6,
92 .
alpha,gapscale,gapmax,stmin,stmax,
95 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
96 CHARACTER(LEN=NCHARKEY) :: KEY1
157 ipari(33) =
max(0,ilagm)
164 WRITE(iout,1000) noint,trim(titr)
166 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,ni),ltitr)
171 is_available = .false.
176 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
177 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
178 CALL hm_get_intv(
'Istf',igsti,is_available,lsubmodel)
179 CALL hm_get_intv(
'Igap',igap,is_available,lsubmodel)
180 CALL hm_get_intv(
'Multimp',field6,is_available,lsubmodel)
181 CALL hm_get_intv(
'Ibag',ibag,is_available,lsubmodel)
182 CALL hm_get_intv(
'Idel7',idel7n,is_available,lsubmodel)
184 CALL hm_get_intv(
'Deactivate_X_BC',ibc1,is_available,lsubmodel)
185 CALL hm_get_intv(
'Deactivate_Y_BC',ibc2,is_available,lsubmodel)
186 CALL hm_get_intv(
'Deactivate_Z_BC',ibc3,is_available,lsubmodel)
187 CALL hm_get_intv(
'INACTIV',inacti,is_available,lsubmodel)
190 CALL hm_get_intv(
'Ifiltr',ifq,is_available,lsubmodel)
191 CALL hm_get_intv(
'IFORM',modfr,is_available,lsubmodel)
196 CALL hm_get_floatv(
'GAPSCALE',gapscale,is_available,lsubmodel,unitab)
197 CALL hm_get_floatv(
'GAPMAX',gapmax,is_available,lsubmodel,unitab)
199 CALL hm_get_floatv(
'STMIN',stmin,is_available,lsubmodel,unitab)
200 CALL hm_get_floatv(
'STMAX',stmax,is_available,lsubmodel,unitab)
202 CALL hm_get_floatv(
'TYPE7_SCALE',stfac,is_available,lsubmodel,unitab)
203 CALL hm_get_floatv(
'FRIC',fric,is_available,lsubmodel,unitab)
205 CALL hm_get_floatv(
'TSTART',startt,is_available,lsubmodel,unitab)
206 CALL hm_get_floatv(
'TSTOP',stopt,is_available,lsubmodel,unitab)
208 CALL hm_get_floatv(
'STIFF_DC',visc,is_available,lsubmodel,unitab)
209 CALL hm_get_floatv(
'FRIC_DC',viscf,is_available,lsubmodel,unitab)
210 CALL hm_get_floatv(
'SORT_FACT',bumult,is_available,lsubmodel,unitab)
233 CALL definter(key1 ,igsti ,iassign ,iprint ,
237 CALL definter(key1 ,igap ,iassign ,iprint ,
241 CALL definter(key1 ,ibag ,iassign ,iprint ,
245 CALL definter(key1 ,idel7n ,iassign ,iprint ,
249 CALL definter(key1 ,inacti,iassign ,iprint ,
253 CALL definter(key1 ,modfr,iassign ,iprint ,
273 ingr2usr => igrsurf(1:nsurf)%ID
274 isu2=ngr2usr(isu2,ingr2usr,nsurf)
276 ingr2usr => igrnod(1:ngrnod)%ID
277 isu1=ngr2usr(isu1,ingr2usr,ngrnod)
294 IF(gapscale==zero)gapscale=one
295 frigap(13) = gapscale
298 IF(frigap(16)==zero)
THEN
307 IF(stmax==zero)stmax=ep30
319 IF (stopt == zero) stopt = ep30
326 IF (stfac == zero ) stfac = one
327 IF(igsti==1)stfac=-stfac
329 IF(fric/=zero.AND.viscf==zero)viscf=one
342 IF (idel7n>2.OR.n2d==1) idel7n = 0
344 IF(bumult==zero)
THEN
347 IF(numnod > 2500000)
THEN
349 ELSEIF(numnod > 1500000)
THEN
350 bumult = bmul0*three/two
358 ipari(11)=4*ibc1+2*ibc2+ibc3 + 8 *(4*ibc1m+2*ibc2m+ibc3m)
365 IF (mfrot/=0.AND.viscf==0.0) viscf=one
366 IF (
alpha==0.) ifq = 0
368 IF (modfr==0) modfr = 1
369 IF (modfr==2.AND.ifq<10) ifq = ifq + 10
370 IF (modfr==2)viscf=zero
373 IF (ifq==10) xfiltr = one
374 IF (mod(ifq,10)==1) xfiltr =
alpha
375 IF (mod(ifq,10)==2) xfiltr=four*atan2(one,zero) /
alpha
376 IF (mod(ifq,10)==3) xfiltr=four*atan2(one,zero) *
alpha
377 IF (xfiltr<zero)
THEN
380 . anmode=aninfo_blind_1,
384 ELSEIF (xfiltr>1.AND.mod(ifq,10)<=2)
THEN
387 . anmode=aninfo_blind_1,
410 IF (ibag/=0.AND.nvolu==0.AND.ialelag==0.AND.nsphsol==0)
THEN
412 . msgtype=msgwarning,
413 . anmode=aninfo_blind_2,
419 intbag =
max(intbag,ibag)
421 kcontact =
max(kcontact,ibag,iadm)
439 IF( (igap>=2 .AND. igap/=1000).
440 . or.igsti>1 .AND. igsti/=1000)
THEN
442 WRITE(iout,1538)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
443 . stfac,fric,igap,gap,gapmax,
444 . gapscale,startt,stopt,
445 . bumult,inacti,visc,viscf,ipari(14),
448 WRITE(iout,1548)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
449 . stfac,igsti,stmin,stmax,
450 . fric,igap,gap,gapmax,
451 . gapscale,startt,stopt,
452 . bumult,inacti,visc,viscf,ipari(14),
455 ELSEIF(stfac>=zero)
THEN
456 WRITE(iout,1594)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
457 . stfac,igap,gap,startt,stopt,
458 . bumult,inacti,visc,viscf,ipari(14),
461 WRITE(iout,1595)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
464 . bumult,inacti,visc,viscf,ipari(14),
467 .
' LAGRANGE MULTIPLIER WITH /DT/INTER/LAG. . '
471 WRITE(iout,
'(A,A,I5/)')
472 .
' DELETION FLAG ON FAILURE OF MAIN ELEMENT',
473 .
' (1:YES-ALL/2:YES-ANY) : ',idel7n
474 IF(idelkeep == 1)
THEN
476 .
' IDEL: DO NOT REMOVE NON-CONNECTED NODES FROM SECONDARY SURFACE'
485 WRITE(iout,1520)mod(ifq,10), xfiltr
487 WRITE(iout,1524) fric
489 WRITE(iout,1515)fric_p(1),fric_p(2),fric_p(3),
490 . fric_p(4),fric_p(5)
492 WRITE(iout,1522)fric,fric_p(1),fric_p(2),fric_p(3),
493 . fric_p(4),fric_p(5),fric_p(6)
495 WRITE(iout,1523)fric_p(1),fric_p(2),fric_p(3),
496 . fric_p(4),fric_p(5),fric_p(6)
501 WRITE(iout,*)
' AIRBAG POROSITY COUPLING ON '
506 WRITE(iout,
'(6X,A)')
'NO SECONDARY SURFACE INPUT'
508 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
510 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY NODES'
512 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
514 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY BRICKS'
516 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
519 WRITE(iout,
'(6X,A)')
'NO MAIN SURFACE INPUT'
521 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
523 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY NODES'
525 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
527 WRITE(iout,
'(6X,A)')
'MAIN SURFACE REFERS ',
528 .
'TO HYPER-ELLIPSOIDAL SURFACE'
532 1000
FORMAT(/1x,
' INTERFACE NUMBER :',i10,1x,a)
537 .
' TYPE==7 PARALLEL/AUTO IMPACTING ' //)
540 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
541 .
' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
543 .
' BOUND. COND. DELETED AFTER IMPACT IN X DIR ',i1/,
544 .
' MAIN NODE (1:YES 0:NO) Y DIR ',i1/,
546 .
' CONSTANT STIFFNESS. . . . . . . . . . . . ',1pg20.13/,
547 .
' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
548 .
' VARIABLE GAP FLAG . . . . . . . . . . . . ',i5/,
549 .
' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
550 .
' MAXIMUM GAP (= 0. <=> NO MAXIMUM GAP) . . ',1pg20.13/,
551 .
' GAP SCALE FACTOR. . . . . . . . . . . . . ',1pg20.13/,
552 .
' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
553 .
' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
554 .
' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
555 .
' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
556 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
557 .
' FRICTION CRITICAL DAMPING FACTOR. . . . . ',1pg20.13/,
558 .
' QUADRATIC DAMPING FLAG. . . . . . . . . . ',i5/,
559 . ' formulation level . . . . . . . . . . . .
',I5/,
560 . ' mean possible number of impact/node . . .
',I5/)
563 . ' bound. cond. deleted after impact in x dir
',I1/,
564 . ' secondary node(1
',I1/,
566 . ' bound. cond. deleted after impact in x dir
',I1/,
567 . ' main node(1:yes 0:no) y dir
',I1/,
569 . ' stiffness factor. . . . . . . . . . . . .
',1PG20.13/,
570 . ' stiffness formulation. . . . . . . . . .
',I4/,
571 .' 2,3,4,5 : stiffness is computed from stiffness on
main side
'/,
572 .' and stiffness at secondary nodes
'/,
573 .' 1000 : stiffness is computed from stiffness on
main side
'/,
574 . ' minimum stiffness. . . . . . . . . . . .
',1PG20.13/,
575 . ' maximum stiffness. . . . . . . . . . . .
',1PG20.13/,
576 . ' friction factor . . . . . . . . . . . . .
',1PG20.13/,
577 . ' variable gap flag . . . . . . . . . . . .
',I5/,
578 . ' minimum gap . . . . . . . . . . . . . . .
',1PG20.13/,
579 . ' maximum gap(= 0. <=
',1PG20.13/,
580 . ' gap scale factor. . . . . . . . . . . . .
',1PG20.13/,
581 . ' start time. . . . . . . . . . . . . . . .
',1PG20.13/,
582 . ' stop time . . . . . . . . . . . . . . . .
',1PG20.13/,
583 . ' bucket factor . . . . . . . . . . . . . .
',1PG20.13/,
584 . ' de-activation of initial penetrations . .
',I10/,
585 . ' critical
damping factor . . . . . . . . .
',1PG20.13/,
586 . ' friction critical
damping factor. . . . .
',1PG20.13/,
587 . ' quadratic
damping flag. . . . . . . . . .
',I5/,
588 . ' formulation level . . . . . . . . . . . .
',I5/,
589 . ' mean possible number of impact/node . . .
',I5/)
591 . ' bound. cond. deleted after impact in x dir
',I1/,
592 . ' secondary node(1:yes 0:no) y dir
',I1/,
594 . ' bound. cond. deleted after impact in x dir
',I1/,
595 . ' main node(1:yes 0:no) y dir
',I1/,
597 . ' stiffness factor. . . . . . . . . . . . .
',1PG20.13/,
598 . ' variable gap flag . . . . . . . . . . . .
',I5/,
599 . ' minimum gap . . . . . . . . . . . . . . .
',1PG20.13/,
600 . ' start time. . . . . . . . . . . . . . . .
',1PG20.13/,
601 . ' stop time . . . . . . . . . . . . . . . .
',1PG20.13/,
602 . ' bucket factor . . . . . . . . . . . . . .
',1PG20.13/,
603 . ' de-activation of initial penetrations . .
',I10/,
604 . ' critical
damping factor . . . . . . . . .
',1PG20.13/,
605 . ' friction critical
damping factor. . . . .
',1PG20.13/,
606 . ' quadratic
damping flag. . . . . . . . . .
',I5/,
607 . ' formulation level . . . . . . . . . . . .
',I5/,
608 . ' mean possible number of impact/node . . .
',I5/)
610 . ' bound. cond. deleted after impact in x dir
',I1/,
611 . ' secondary node(1:yes 0:no) y dir
',I1/,
613 . ' bound. cond. deleted after impact in x dir
',I1/,
614 . ' main node(1:yes 0:no
',I1/,
616 . ' constant stiffness. . . . . . . . . . . .
',1PG20.13/,
617 . ' variable gap flag . . . . . . . . . . . .
',I5/,
618 . ' minimum gap . . . . . . . . . . . . . . .
',1PG20.13/,
619 . ' start time. . . . . . . . . . . . . . . .
',1PG20.13/,
620 . ' stop time . . . . . . . . . . . . . . . .
',1PG20.13/,
621 . ' bucket factor . . . . . . . . . . . . . .
',1PG20.13/,
622 . ' de-activation of initial penetrations . .
',I10/,
623 . ' maximal initial penetration factor. . . .
',1PG20.13/,
624 . ' critical
damping factor . . . . . . . . .
',1PG20.13/,
625 . ' friction critical
damping factor. . . . .
',1PG20.13/,
626 . ' quadratic
damping flag. . . . . . . . . .
',I5/,
627 . ' formulation level . . . . . . . . . . . .
',I5/,
628 . ' mean possible number of impact/node . . .
',I5/)
630 1518 FORMAT( ' friction formulation: incremental(stiffness)
',
632 1519 FORMAT( ' friction
',
636 . ' friction model 1 (viscous polynomial)
'/,
637 . ' mu = muo + c1 p + c2 v + c3 pv + c4 p^2 + c5 v^2
'/,
638 . ' c1 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
639 . ' c2 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
640 . ' c3 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
641 . ' c4 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
642 . ' c5 . . . . . . . . . . . . . . . . . . .
',1PG20.13/,
643 . ' tangential pressure limit. . .. . . . . .
',1PG20.13/)
645 . ' friction model 2 (darmstad law) :
'/,
646 . ' mu = muo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
647 .
' Muo. . . . . . . . . . . . . . . . . . . ',1pg20.13/,
648 .
' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
649 .
' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
650 .
' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
651 .
' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
652 .
' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
653 .
' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
655 .
' FRICTION MODEL 3 (Renard law) :'/,
656 .
' C1 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
657 .
' C2 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
658 .
' C3 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
659 .
' C4 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
660 .
' C5 . . . . . . . . . . . . . . . . . . . ',1pg20.13/,
661 .
' C6 . . . . . . . . . . . . . . . . . . . ',1pg20.13/)
663 .
' FRICTION MODEL 0 (Coulomb Law) :'/,
664 .
' FRICTION COEFFICIENT . . . . . . . . . ',1pg20.13/)
667 .
' FRICTION FILTERING FLAG. . . . . . . . . ',i10/,
668 .
' FILTERING FACTOR . . . . . . . . . . . . ',1pg20.13)