38
39
40
44
45
46
47#include "implicit_f.inc"
48
49
50
51 INTEGER ISU1,ISU2,NOINT
52 INTEGER IPARI(*)
55 TYPE (GROUP_) ,TARGET, DIMENSION(NGRBRIC) :: IGRBRIC
56 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
57
58
59
60#include "com01_c.inc"
61# "com04_c.inc"
62#include "scr06_c.inc"
63#include "units_c.inc"
64
65
66
67 INTEGER :: ISU10,ISU20,MULTIMP,ITIED,NTYP,IS1,IS2
68 my_real :: startt,bumult,stopt,gap,fric
69 INTEGER, DIMENSION(:), POINTER :: INGR2USR
70 LOGICAL IS_AVAILABLE
71
72
73
74 INTEGER NGR2USR
75
76
77
78
79 ntyp = 17
80 startt = zero
81 stopt = ep20
82 gap = zero
83 stfac = one_fifth
84 fric = zero
85
86
87 CALL hm_get_intv(
'secondaryentityids ',isu10,is_available,lsubmodel)
88 CALL hm_get_intv(
'mainentityids',isu20,is_available,lsubmodel)
89
90
91 CALL hm_get_intv(
'Itied' ,itied,is_available,lsubmodel)
92
93
94
95 is1 = 5
96 is2 = 5
97 ingr2usr => igrbric(1:ngrbric)%ID
98 isu1 =
ngr2usr(isu10,ingr2usr,ngrbric)
99 isu2 =
ngr2usr(isu20,ingr2usr,ngrbric)
100
101 bumult = bmul0
102 multimp=24
103
104 IF (nspmd > 1) THEN
105 CALL ancmsg(msgid=755,msgtype=msgerror,anmode=aninfo,c1=
'TYPE 17 LAGRANGE INTERFACE')
106 END IF
107
108
109
110 ipari(7) = ntyp
111 ipari(13) = is1*10+is2
112 ipari(15) = noint
113 ipari(23) = multimp
114 ipari(30) = itied
115 ipari(15) = noint
116 ipari(45) = isu1
117 ipari(46) = isu2
118
119 frigap(1) = fric
120 frigap(2) = gap
121 frigap(3) = startt
122 frigap(4) = bumult
123 frigap(5) = one
124 frigap(11)= stopt
125
126
127
128 WRITE(iout,1000)isu10,isu20,itied,startt,stopt
129
130 IF (is1 == 0) THEN
131 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
132 ELSEIF (is1THEN
133 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
134 ELSEIF (is1 == 2) THEN
135 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
136 ELSEIF (is1 == 3) THEN
137 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
138 ELSEIF (is1 == 4 ) THEN
139 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
140 ELSEIF (is1 == 5 ) THEN
141 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
142 ENDIF
143 IF (is2 == 0) THEN
144 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT'
145 ELSEIF (is2 == 1) THEN
146 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
147 ELSEIF (is2 == 2) THEN
148 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY NODES'
149 ELSEIF (is2 == 3) THEN
150 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
151 ELSEIF (is2 == 4) THEN
152 WRITE(iout,'(6X,A)')'MAIN SURFACE REFERS ',
153 . 'TO HYPER-ELLIPSOIDAL SURFACE'
154 ENDIF
155 WRITE(iout,'(A)')' '
156
157 RETURN
158
159 1000 FORMAT(//
160 . ' TYPE 17 SURFACE/SURFACE 16 NODES THICK SHELL' //,
161 . ' FIRST SOLID ELEMENT GROUP. . . . . . . . . ',i10/,
162 . ' SECOND SOLID ELEMENT GROUP . . . . . . . . ',i10/,
163 . ' ITIED . . . . . . . . . . . . . . . . . . . ',i10/,
164 . ' 0: SLIDING '/,
165 . ' 1: TIED (during contact)'/,
166 . ' 2: TIED (no rebound)'/,
167 . ' START TIME. . . . . . . . . . . . . . . . . ',1pg20.13/,
168 . ' STOP TIME . . . . . . . . . . . . . . . . . ',1pg20.13//)
169
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer function ngr2usr(iu, igr, ngr)
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)