37 1 IPARI ,STFAC ,FRIGAP ,NOINT ,
38 2 IGRSURF ,NPC1 ,TITR ,LSUBMODEL ,UNITAB )
52#include "implicit_f.inc"
60 INTEGER IPARI(*),NPC1(*)
65 CHARACTER(LEN=NCHARTITLE) :: ,TITR1
66 TYPE(SUBMODEL_DATA),
INTENT(IN)::(*)
67 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
69 TYPE (SURF_) ,
TARGET ,
DIMENSION(NSURF) :: IGRSURF
78 INTEGER I,,, NTYP, IBID,INACTI,IS1, IS2,ILEV,NCURS,,
79 . NFRIC, NDAMP1,NDAMP2,IRS,IRM,IFUN1,IFUN2,HFLAG,IKK,II,
80 . intkg, nfric1,nfric2,icor,ierr1,ierr2,ifric1,ifric2,
83 . fac,fac1,fac2,fac3,facf,facv,fric,gap,startt,stopt,sfric,
85 CHARACTER(LEN=40)::MESS
86 CHARACTER(LEN=NCHARTITLE)::MSGTITL
87 CHARACTER(LEN=NCHARKEY)::OPT,,KEY1
88 CHARACTER(LEN=NCHARFIELD)::BCFLAG,BCFLAGM
90 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
120 is_available = .false.
124 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
125 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
127 CALL hm_get_intv(
'Gflag',irs,is_available,lsubmodel)
128 CALL hm_get_intv(
'Vflag',irm,is_available,lsubmodel)
129 CALL hm_get_intv(
'INACTIV',inacti,is_available,lsubmodel)
130 CALL hm_get_intv(
'Crx_Fun',nfric1,is_available,lsubmodel)
131 CALL hm_get_intv(
'Cry_Fun',nfric2,is_available,lsubmodel)
133 CALL hm_get_intv(
'FUN_A1',ifun1,is_available,lsubmodel)
134 CALL hm_get_intv(
'HFLAG1',hflag,is_available,lsubmodel)
135 CALL hm_get_intv(
'ISFLAG',icor,is_available,lsubmodel)
137 CALL hm_get_intv(
'FUNCT_ID',ifun2,is_available,lsubmodel)
138 CALL hm_get_intv(
'Crz_Fun',ndamp2,is_available,lsubmodel)
139 CALL hm_get_intv(
'Ctx_Fun',ndamp1,is_available,lsubmodel)
143 CALL hm_get_floatv(
'Friction_phi',sfric,is_available,lsubmodel,unitab)
144 CALL hm_get_floatv(
'FRIC',fric,is_available,lsubmodel,unitab)
146 CALL hm_get_floatv(
'TSTART',startt,is_available,lsubmodel,unitab)
147 CALL hm_get_floatv(
'TSTOP',stopt,is_available,lsubmodel,unitab)
149 CALL hm_get_floatv(
'scale1',facf,is_available,lsubmodel,unitab)
150 CALL hm_get_floatv(
'scale2',facv,is_available,lsubmodel,unitab)
152 CALL hm_get_floatv(
'FACX',facx,is_available,lsubmodel,unitab)
155 CALL hm_get_floatv(
'STIFF1',stiff,is_available,lsubmodel,unitab)
156 CALL hm_get_floatv(
'PFscale',fac2,is_available,lsubmodel,unitab)
157 CALL hm_get_floatv(
'VISC',visc,is_available,lsubmodel,unitab)
158 CALL hm_get_floatv(
'scale3',fac3,is_available,lsubmodel,unitab)
164 ingr2usr => igrsurf(1:nsurf)%ID
165 isu1=ngr2usr(isu1,ingr2usr,nsurf)
166 isu2=ngr2usr(isu2,ingr2usr,nsurf)
172 IF (stopt == zero) stopt = ep30
182 IF (hflag > 0 .AND. ifun2 == 0) hflag = 2
183 IF (hflag > 0 .AND. stiff == zero) hflag = 0
184 IF (hflag == 0 .AND. icor == 1) icor = 0
185 IF (facx == zero) facx = one
186 IF (fac1 == zero) fac1 = one
187 IF (fac2 == zero) fac2 = one
188 IF (fac3 == zero) fac3 = one
189 IF (facf == zero) facf = one
190 IF (facv == zero) facv = one
191 IF (stiff == zero) stiff = ep30
198 IF (stfac == zero) stfac = one_fifth
226 IF (ipari(11) == npc1(j))
THEN
235 . anmode=aninfo_blind_1,
241 IF (ipari(47) > 0 .AND. ipari(49) /= 0)
THEN
244 IF(ipari(49) == npc1(j))
THEN
253 . anmode=aninfo_blind_1,
261 IF (ifric1 /= 0)
THEN
264 IF (ifric1 == npc1(j))
THEN
270 IF (ierr1 == 1)
CALL ancmsg(msgid=113,
279 IF (idamp1 /= 0)
THEN
282 IF (idamp1 == npc1(j))
THEN
288 IF (ierr1 == 1)
CALL ancmsg(msgid=113,
297 IF (idamp2 /= 0)
THEN
300 IF (idamp2 == npc1(j))
THEN
306 IF (ierr1 == 1)
CALL ancmsg(msgid=113,
315 IF (ifric2 /= 0)
THEN
318 IF (ifric2 == npc1(j))
THEN
324 IF (ierr1 == 1)
CALL ancmsg(msgid=113,
335 WRITE(iout,1506) hflag,icor,ifun1,ifun2,facx,stfac,fac2,
336 . stiff,sfric,fric,nfric1,nfric2,visc,
337 . ndamp2,ndamp1,inacti,gap,startt,stopt,irs,irm
340 WRITE(iout,
'(6X,A)')
'NO SECONDARY SURFACE INPUT'
342 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
344 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY NODES'
346 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
348 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY BRICKS'
350 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
353 WRITE(iout,
'(6X,A)')
'NO MAIN SURFACE INPUT'
355 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
357 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY NODES'
359 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
361 WRITE(iout,
'(6X,A)')
'MAIN SURFACE REFERS ',
362 .
'TO HYPER-ELLIPSOIDAL SURFACE'
366 1000
FORMAT(/1x,
' INTERFACE NUMBER :',i10,1x,a)
367 1300
FORMAT( /1x,
' INTERFACES ' /
368 . 1x,
' -------------- '// )
373 .
' TYPE==6 RIGID BODY INTERFACE ' //,
374 .
' FORMULATION FLAG . . . . ',i10/,
375 .
' INITIAL PENETRATION FLAG . . . . ',i10/,
376 .
' LOADING FUNCTION ID . . . . ',i10/,
377 .
' UNLOADING FUNCTION ID . . . . ',i10/,
378 .
' ABSCISSA (DISPLACEMENT) SCALE FACTOR. . . ',1pg20.13/,
379 .
' LOAD FUNCTION SCALE FACTOR . . . . . . . ',1pg20.13/,
380 .
' UNLOAD FUNCTION SCALE FACTOR . . . . . . ',1pg20.13/,
381 .
' ELASTIC MODULUS . . . . . . . . . . . . . ',1pg20.13/,
382 .
' STATIC FRICTION FORCE . . . . . . . . . . ',1pg20.13/,
383 .
' FRICTION FACTOR . . . . . . . . . . . . . ',1pg20.13/,
384 .
' FRICTION FUNCTION OF NORMAL FORCE . . . . .',i10/,
385 . ' friction
FUNCTION of slip velocity. . . . .
',I10/,
386 . ' damping coefficient . . . . . . . . . . .
',1PG20.13/,
387 . ' damping amplifier function vs normal force.
',I10/,
388 . ' damping force function vs velocity. . . . .
',I10/,
389 . ' de-activation of initial penetrations . . .
',I10/,
390 . ' initial gap . . . . . . .
',1PG20.13/,
391 . ' start time. . . . . . . . . . . . . . . .
',1PG20.13/,
392 . ' stop time . . . . . . . . . . . . . . . .
',1PG20.13/,
393 . ' secondary surface reordering flag . . . . . .
',I1/,
394 . ' main surface reordering flag. . . . . .
',I1/)
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)