43
44
45
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "scr17_c.inc"
59#include "sphcom.inc"
60
61
62
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
72
73 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
74 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
75
76
77
78#include "scr06_c.inc"
79#include "com01_c.inc"
80#include "com04_c.inc"
81#include "units_c.inc"
82#include "scr12_c.inc"
83
84
85
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,
93 . visc,viscf
94
95 INTEGER, DIMENSION(:), POINTER :: INGR2USR
96 CHARACTER(LEN=NCHARKEY) :: KEY1
97
98
99
100 INTEGER NGR2USR
101 LOGICAL IS_AVAILABLE
102
103
104
105
106
107
108 is1=0
109 is2=0
110 ibc1=0
111 ibc2=0
112 ibc3=0
113 ibc1m=0
114 ibc2m=0
115 ibc3m=0
116 mfrot=0
117 ifq=0
118 ibag=0
119 igsti = 0
120 ivis2 = 0
121
122 iadm =0
123
124 stopt=ep30
125 inacti = 0
126 viscf = zero
127
128 fric = zero
129 gap = zero
130 gapscale = zero
131 startt = zero
132 visc = zero
133 xfiltr = zero
134 DO i = 1, 10
135 fric_p(i) = zero
136 ENDDO
137 idel7n = 0
138 idelkeep=0
139
140 c1=zero
141 c2=zero
142 c3=zero
143 c4=zero
144 c5=zero
145 c6=zero
146
147 iform = 0
148
149 gapscale = zero
150 iassign = 1
151
152
153
154
155
156 ilagm = 2
157 ipari(33) =
max(0,ilagm)
158 nom_opt(1,ni)=noint
159 ntyp = 7
160 ipari(7)=ntyp
161 ipari(15)=noint
162
163
164 WRITE(iout,1000) noint,trim(titr)
165
166 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,ni),ltitr)
167
168
169
170
171 is_available = .false.
172
173
174
175
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)
183
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)
188
189 CALL hm_get_intv(
'Ifric',mfrot,is_available,lsubmodel)
190 CALL hm_get_intv(
'Ifiltr',ifq,is_available,lsubmodel)
191 CALL hm_get_intv(
'IFORM',modfr,is_available,lsubmodel)
192
193
194
195
196 CALL hm_get_floatv(
'GAPSCALE',gapscale,is_available,lsubmodel,unitab)
197 CALL hm_get_floatv(
'GAPMAX',gapmax,is_available,lsubmodel,unitab)
198
199 CALL hm_get_floatv(
'STMIN',stmin,is_available,lsubmodel,unitab)
200 CALL hm_get_floatv(
'STMAX',stmax,is_available,lsubmodel,unitab)
201
202 CALL hm_get_floatv(
'TYPE7_SCALE',stfac,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)
207
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)
211
213
214 IF (mfrot>0) THEN
220 ENDIF
221 IF (mfrot>1) THEN
223 ENDIF
224
225
226
227
228
229
230 iprint = 0
231
232 key1='IGSTI'
233 CALL definter(key1 ,igsti ,iassign ,iprint ,
234 . ntyp ,def_inter)
235
236 key1='IGAP'
237 CALL definter(key1 ,igap ,iassign ,iprint ,
238 . ntyp ,def_inter)
239
240 key1='IBAG'
241 CALL definter(key1 ,ibag ,iassign ,iprint ,
242 . ntyp ,def_inter)
243
244 key1='IDEL'
245 CALL definter(key1 ,idel7n ,iassign ,iprint ,
246 . ntyp ,def_inter)
247
248 key1='INACTI'
249 CALL definter(key1 ,inacti,iassign ,iprint ,
250 . ntyp ,def_inter)
251
252 key1='MODFR'
253 CALL definter(key1 ,modfr,iassign ,iprint ,
254 . ntyp ,def_inter)
255
256
257
258
259
260 IF(isu2==0) THEN
262 . msgtype=msgerror,
263 . anmode=aninfo,
264 . i1=noint,
265 . c1=titr)
266 ENDIF
267
268 IF(isu1==0)THEN
269 isu1=isu2
270 is1 =1
271 ENDIF
272 is2=1
273 ingr2usr => igrsurf(1:nsurf)%ID
274 isu2=
ngr2usr(isu2,ingr2usr,nsurf)
275 IF(isu1/=0)THEN
276 ingr2usr => igrnod(1:ngrnod)%ID
277 isu1=
ngr2usr(isu1,ingr2usr,ngrnod)
278 is1 =2
279 ENDIF
280
281
282 ipari(45)=isu1
283 ipari(46)=isu2
284 ipari(13)=is1*10+is2
285 ipari(34)=igsti
286 ipari(21)=igap
287
288
289
290
291
292
293 IF(igap>=2)THEN
294 IF(gapscale==zero)gapscale=one
295 frigap(13) = gapscale
296 frigap(16) = gapmax
297 END IF
298 IF(frigap(16)==zero)THEN
299 gapmax=ep30
300 frigap(16)=gapmax
301 END IF
302
303
304
305 IF(igsti>1)THEN
306 i7stifs=1
307 IF(stmax==zero)stmax=ep30
308 frigap(17) = stmin
309 frigap(18) = stmax
310 ELSE
311 stmin = zero
312 stmax = ep30
313 END IF
314
315
316
317
318 frigap(2)=gap
319 IF (stopt == zero) stopt = ep30
320 frigap(3)=startt
321 frigap(11)=stopt
322
323
324
325
326 IF (stfac == zero ) stfac = one
327 IF(igsti==1)stfac=-stfac
328
329 IF(fric/=zero.AND.viscf==zero)viscf=one
330 IF(visc==zero)THEN
331 IF(ivis2==5)THEN
332 visc=one
333 ELSE
334 visc=fiveem2
335 ENDIF
336 ENDIF
337 IF (idel7n < 0) THEN
338 idelkeep=1
339 idel7n=abs(idel7n)
340 END IF
341 ipari(61)=idelkeep
342 IF (idel7n>2.OR.n2d==1) idel7n = 0
343
344 IF(bumult==zero) THEN
345 bumult = bmul0
346
347 IF(numnod > 2500000) THEN
348 bumult = bmul0*two
349 ELSEIF(numnod > 1500000) THEN
350 bumult = bmul0*three/two
351 END IF
352 END IF
353
354
355 ipari(22)=inacti
356 ipari(17)=idel7n
357 ipari(14)=ivis2
358 ipari(11)=4*ibc1+2*ibc2+ibc3 + 8 *(4*ibc1m+2*ibc2m+ibc3m)
359 frigap(14)=visc
360 frigap(4)=bumult
361
362
363
364
365 IF (mfrot/=0.AND.viscf==0.0) viscf=one
366 IF (
alpha==0.) ifq = 0
367
368 IF (modfr==0) modfr = 1
369 IF (modfr==2.AND.ifq<10) ifq = ifq + 10
370 IF (modfr==2)viscf=zero
371
372 IF (ifq>0) THEN
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
379 . msgtype=msgerror,
380 . anmode=aninfo_blind_1,
381 . i1=noint,
382 . c1=titr,
384 ELSEIF (xfiltr>1.AND.mod(ifq,10)<=2) THEN
386 . msgtype=msgerror,
387 . anmode=aninfo_blind_1,
388 . i1=noint,
389 . c1=titr,
391 ENDIF
392 ELSE
393 xfiltr = zero
394 ENDIF
395
396
397
398
399 ipari(30)=mfrot
400 ipari(31) = ifq
401 frigap(1)=fric
402 frigap(15)=viscf**2
403 fric_p(1) = c1
404 fric_p(2) = c2
405 fric_p(3) = c3
406 fric_p(4) = c4
407 fric_p(5) = c5
408 fric_p(6) = c6
409
410 IF (ibag/=0.AND.nvolu==0.AND.ialelag==0.AND.nsphsol==0) THEN
412 . msgtype=msgwarning,
413 . anmode=aninfo_blind_2,
414 . i1=noint,
415 . c1=titr)
416 ibag=0
417 ENDIF
418 ipari(32) = ibag
419 intbag =
max(intbag,ibag)
420
421 kcontact =
max(kcontact,ibag,iadm)
422
423 multimp = 4
424 ipari(23)=multimp
425
426
427 frigap(10)=float(0)
428
429
430
431
432
433
434 iprint = 1
435
436
437 WRITE(iout,1549)
438
439 IF( (igap>=2 .AND. igap/=1000).
440 . or.igsti>1 .AND. igsti/=1000)THEN
441 IF(igsti==1)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),
446 . ipari(20),multimp
447 ELSE
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),
453 . ipari(20),multimp
454 ENDIF
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),
459 . ipari(20),multimp
460 ELSE
461 WRITE(iout,1595)ibc1,ibc2,ibc3,ibc1m,ibc2m,ibc3m,
462 . -stfac,igap,gap,
463 . startt,stopt,
464 . bumult,inacti,visc,viscf,ipari(14),
465 . ipari(20),multimp
466 WRITE(iout,'(A)')
467 . ' LAGRANGE MULTIPLIER WITH /DT/INTER/LAG. . '
468 ENDIF
469
470 IF(idel7n/=0) THEN
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
475 WRITE(iout,'(A)')
476 . ' IDEL: DO NOT REMOVE NON-CONNECTED NODES FROM SECONDARY SURFACE'
477 ENDIF
478 ENDIF
479
480 IF(ifq>=10) THEN
481 WRITE(iout,1518)
482 ELSE
483 WRITE(iout,1519)
484 ENDIF
485 WRITE(iout,1520)mod(ifq,10), xfiltr
486 IF(mfrot==0)THEN
487 WRITE(iout,1524) fric
488 ELSEIF(mfrot==1)THEN
489 WRITE(iout,1515)fric_p(1),fric_p(2),fric_p(3),
490 . fric_p(4),fric_p(5)
491 ELSEIF(mfrot==2)THEN
492 WRITE(iout,1522)fric,fric_p(1),fric_p(2),fric_p(3),
493 . fric_p(4),fric_p(5),fric_p(6)
494 ELSEIF(mfrot==3)THEN
495 WRITE(iout,1523)fric_p(1),fric_p(2),fric_p(3),
496 . fric_p(4),fric_p(5),fric_p(6)
497 ENDIF
498
499
500 IF(ibag/=1000) THEN
501 WRITE(iout,*)' AIRBAG POROSITY COUPLING ON '
502 ENDIF
503
504
505 IF(is1==0)THEN
506 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
507 ELSEIF(is1==1)THEN
508 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
509 ELSEIF(is1==2)THEN
510 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
511 ELSEIF(is1==3)THEN
512 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
513 ELSEIF(is1==4 )THEN
514 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
515 ELSEIF(is1==5 )THEN
516 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
517 ENDIF
518 IF(is2==0)THEN
519 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT'
520 ELSEIF(is2==1)THEN
521 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
522 ELSEIF(is2==2)THEN
523 WRITE(iout,'(6x,a)
')'main surface input by nodes
'
524 ELSEIF(IS2==3)THEN
525 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
526 ELSEIF(IS2==4)THEN
527 WRITE(IOUT,'(6x,a)
')'main surface refers
',
528 . 'to hyper-ellipsoidal surface'
529 ENDIF
530
531
532 1000 FORMAT(/1X,' INTERFACE number :',I10,1X,A)
533
534 RETURN
535
536 1549 FORMAT(//
537 . ' type==7 parallel/auto impacting ' //)
538
539 1538 FORMAT(
540 . ' bound. cond. deleted after impact in x dir ',I1/,
541 . ' secondary node(1:yes 0:no) y dir ',I1/,
542 . ' z dir ',I1/,
543 . ' bound. cond. deleted after impact in x dir ',I1/,
544 . ' main node(1:yes 0:no) y dir
',I1/,
545 . ' z dir ',I1/,
546 . ' constant stiffness. . . . . . . . . . . . ',1PG20.13/,
547 . ' friction factor . . . . . . . . . . . . . ',1PG20.13/,
548 . ' variable gap flag . . . . . . . . . . . . ',I5/,
549 . ' minimum gap . . . . . . . . . . . . . . . ',1PG20.13/,
550 . '',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/)
561
562 1548 FORMAT(
563 . ' bound. cond. deleted after impact in x dir ',I1/,
564 . ' secondary node(1:yes 0:no) y dir ',I1/,
565 . ' z dir ',I1/,
566 . ' bound. cond. deleted after impact in x dir ',I1/,
567 . ' main node(1:yes 0:no) y dir
',I1/,
568 . ' z 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. <=> no maximum gap) . . ',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/)
590 1594 FORMAT(
591 . ' bound. cond. deleted after impact in x dir ',I1/,
592 . ' secondary node(1:yes 0:no) y dir ',I1/,
593 . ' z dir ',I1/,
594 . ' bound. cond. deleted after impact in x dir ',I1/,
595 . ' main node(1:yes 0:no) y dir
',I1/,
596 . ' z 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/)
609 1595 FORMAT(
610 . ' bound. cond. deleted after impact in x dir ',I1/,
611 . ' secondary node(1:yes 0:no) y dir ',I1/,
612 . ' z dir ',I1/,
613 . ' bound. cond. deleted after impact in x dir ',I1/,
614 . ' main node(1:yes 0:no) y dir
',I1/,
615 . ' z dir ',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/)
629
630 1518 FORMAT( ' friction formulation: incremental(stiffness) ',
631 . 'formulation')
632 1519 FORMAT( ' friction formulation: total(viscous) ',
633 . 'formulation')
634
635 1515 FORMAT(//
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/)
644 1522 FORMAT(/
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/)
654 1523 FORMAT(/
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/)
662 1524 FORMAT(/
663 . ' friction model 0 (coulomb law) :'/,
664 . ' friction coefficient . . . . . . . . . ',1PG20.13/)
665
666 1520 FORMAT(
667 . ' friction filtering flag. . . . . . . . . ',I10/,
668 . ' filtering factor . . . . . . . . . . . . ',1PG20.13)
669
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
subroutine definter(key, ival, flag, iprint, ityp, def_inter)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharkey
integer function ngr2usr(iu, igr, ngr)
int main(int argc, char *argv[])
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)