37 1 IPARI ,STFAC ,FRIGAP ,NOINT ,
38 2 IGRNOD ,IGRSURF ,NPC ,TITR ,LSUBMODEL,
53#include "implicit_f.inc"
61 INTEGER IPARI(*),NPC(*)
64 CHARACTER(LEN=NCHARTITLE),
INTENT(IN) :: TITR
66 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
68 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
69 TYPE (SURF_) ,
TARGET ,
DIMENSION(NSURF) :: IGRSURF
78 CHARACTER(LEN=NCHARTITLE) :: TITR1
79 INTEGER ISU1,ISU2, NTYP,IS1, IS2,NLO,NFRIC,NDAMP1,NDAMP2,NCURS,ISU20,INTKG
80 my_real FRIC,GAP,STARTT,STOPT,VISC
81 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
111 is_available = .false.
115 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
116 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
117 CALL hm_get_intv(
'Iload',nlo,is_available,lsubmodel)
118 CALL hm_get_intv(
'IFRIC',nfric,is_available,lsubmodel)
119 CALL hm_get_intv(
'FUN_A1',ndamp1,is_available,lsubmodel)
120 CALL hm_get_intv(
'FUN_A2',ndamp2,is_available,lsubmodel)
124 CALL hm_get_floatv(
'STIFF1',stfac,is_available,lsubmodel,unitab)
125 CALL hm_get_floatv(
'FRIC',fric,is_available,lsubmodel,unitab)
126 CALL hm_get_floatv(
'VISC',visc,is_available,lsubmodel,unitab)
133 ingr2usr => igrnod(1:ngrnod)%ID
134 IF(isu1/=0)isu1=ngr2usr(isu1,ingr2usr,ngrnod)
136 ingr2usr => igrsurf(1:nsurf)%ID
137 isu2=ngr2usr(isu2,ingr2usr,nsurf)
138 IF ( igrsurf(isu2)%TYPE/=100
139 . .AND.igrsurf(isu2)%TYPE/=101)
THEN
140 titr1 = igrsurf(isu20)%TITLE
153 IF (nlo==npc(nfunct+1+ncurs))
THEN
165 IF (nfric==0)
GOTO 12
167 IF (nfric==npc(nfunct+1+ncurs))
THEN
179 IF (ndamp1==0)
GOTO 13
181 IF (ndamp1==npc(nfunct+1+ncurs))
THEN
193 IF (ndamp2==0)
GOTO 14
195 IF (ndamp2==npc(nfunct+1+ncurs))
THEN
232 . stfac,nlo,fric,nfric,visc,ndamp1,ndamp2,gap,
237 WRITE(iout,
'(6X,A)')
'NO SECONDARY SURFACE INPUT'
239 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
241 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY NODES'
243 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
245 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY BRICKS'
247 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
250 WRITE(iout,
'(6X,A)')
'NO MAIN SURFACE INPUT'
252 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
254 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY NODES'
256 WRITE(iout,
'(6X,A)')'
main surface input by segments
'
258 WRITE(IOUT,'(6x,a)
')'main surface refers
',
259 . 'to hyper-ellipsoidal surface
'
268 . ' type==14 node to surface
' //,
269 . ' INTERFACE stiffness . . . . . . . . . . . .
',1PG20.13/,
270 . ' FUNCTION for elastic contact . . . . . . .
',I10/,
271 . ' friction coefficient . . . . . . . . . . .
',1PG20.13/,
272 . ' function
for friction . . . . . . . . . . .
',I10/,
273 . ' normal
damping factor . . . . . . . . . . .
',1PG20.13/,
275 . ' function
for damping versus elastic force .
',I10/,
276 . ' minimum gap . . . . . . . . . . . . . . . .
',1PG20.13/,
277 . ' start time. . . . . . . . . . . . . . . . .
',1PG20.13/,
278 . ' stop time . . . . . . . . . . . . . . . . .
',1PG20.13/)
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
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)