39
40
41
42
43
49
50
51
52#include "implicit_f.inc"
53
54
55
56
57
58
59 INTEGER ISU1,ISU2,NOINT
60 INTEGER IPARI(*)
63 CHARACTER(LEN=NCHARTITLE),INTENT(IN) :: TITR
64 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
65 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
66
67 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
68
69
70
71#include "com04_c.inc"
72#include "units_c.inc"
73
74
75
76 CHARACTER(LEN=NCHARTITLE) :: TITR1
77 INTEGER I,J,L, NTYP,IS1, IS2,ISU20,INTKG
78 my_real fric,gap,startt,stopt,visc
79 INTEGER, DIMENSION(:), POINTER :: INGR2USR
80 LOGICAL
81
82
83
84 INTEGER NGR2USR
85
86
87
88
89
90
91 is1=0
92 is2=0
93 intkg = 0
94
95 fric = zero
96 gap = zero
97 startt = zero
98 stopt=ep30
99 visc = zero
100
101 ntyp = 15
102 ipari(15)=noint
103 ipari(7)=ntyp
104
105 is_available = .false.
106
107
108
109 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
110 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
111
112
113
114 CALL hm_get_floatv(
'STIFF1',stfac,is_available,lsubmodel,unitab)
115 CALL hm_get_floatv(
'FRIC',fric,is_available,lsubmodel,unitab)
116
117
118
119 is1=1
120 is2=4
121 ingr2usr => igrsurf(1:nsurf)%ID
122 IF(isu1/=0)isu1=
ngr2usr(isu1,ingr2usr,nsurf)
123 isu20=isu2
124 isu2=
ngr2usr(isu2,ingr2usr,nsurf)
125 IF ( igrsurf(isu2)%TYPE/=100
126 . .AND.igrsurf(isu2)%TYPE/=101) THEN
127 titr1 = igrsurf(isu20)%TITLE
129 . msgtype=msgerror,
130 . anmode=aninfo,
131 . i1=noint,
132 . c1=titr,
133 . i2=isu20,
134 . c2=titr1)
135 END IF
136
137
138 ipari(45)=isu1
139 ipari(46)=isu2
140 ipari(13)=is1*10+is2
141
142
143
144 visc =zero
145 startt=zero
146 stopt =ep30
147
148
149 frigap(1)=fric
150 frigap(3)=startt
151 frigap(11)=stopt
152 frigap(14)=visc
153
154 ipari(65) = intkg
155 frigap(2)=gap
156
157
158
159
160
161
162 WRITE(iout,1615)stfac,fric,startt,stopt
163
164
165 IF(is1==0)THEN
166 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT'
167 ELSEIF(is1==1)THEN
168 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
169 ELSEIF(is1==2)THEN
170 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
171 ELSEIF(is1==3)THEN
172 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS'
173 ELSEIF(is1==4 )THEN
174 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS'
175 ELSEIF(is1==5 )THEN
176 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
177 ENDIF
178 IF(is2==0)THEN
179 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT'
180 ELSEIF(is2==1)THEN
181 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
182 ELSEIF(is2==2)THEN
183 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY NODES'
184 ELSEIF(is2==3)THEN
185 WRITE(iout,
'(6X,A)')'
main surface input by segments
'
186 ELSEIF(IS2==4)THEN
187 WRITE(IOUT,'(6x,a)
')'main surface refers
',
188 . 'to hyper-ellipsoidal surface'
189 ENDIF
190
191
192 1000 FORMAT(/1X,' INTERFACE number',I10,1X,A)
193
194 RETURN
195
196
197 1615 FORMAT(//
198 . ' type==15 elements to hyper-ellipsoid ' //,
199 . ' INTERFACE stiffness factor. . . . . . . . . ',1PG20.13/,
200 . ' friction coefficient . . . . . . . . . . . ',1PG20.13/,
201 . ' start time. . . . . . . . . . . . . . . . . ',1PG20.13/,
202 . ' stop time . . . . . . . . . . . . . . . . . ',1PG20.13/)
203
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
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)