43 1 (gjbufi ,gjbufr ,itab ,itabm ,x ,
44 2 mass ,iner ,lag_ncf ,lag_nkf ,lag_nhf ,
45 3 ikine ,unitab ,ikine1lag,nom_opt,lsubmodel)
58#include "implicit_f.inc"
69 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
70 INTEGER LAG_NCF ,LAG_NKF, LAG_NHF,
71 . GJBUFI(LKJNI,*), ITAB(*), ITABM(*), IKINE(*),
74 . gjbufr(lkjnr,*), x(3,*), mass(*), iner(*)
75 INTEGER NOM_OPT(LNOPT1,*)
80 INTEGER ,J,JJ,KK,ID,UID,JTYP,N1,N2,N3,N0,NG,SUB_ID
82 .
alpha,ms0,ms1,ms2,ms3,in0,in1,in2,in3,l1,l2,l3
83 CHARACTER(LEN=NCHARTITLE) :: TITR
84 CHARACTER(LEN=NCHARKEY) :: KEY
86 DATA mess/
'GEAR JOINTS DEFINITION '/
107 is_available = .false.
124 . submodel_id = sub_id,
125 . option_titr = titr,
129 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,i),ltitr)
134 CALL hm_get_intv(
'node_ID0',n0,is_available,lsubmodel)
135 CALL hm_get_intv(
'node_ID1',n1,is_available,lsubmodel)
136 CALL hm_get_intv(
'node_ID2',n2,is_available,lsubmodel)
137 CALL hm_get_intv(
'node_ID3',n3,is_available,lsubmodel)
145 CALL hm_get_floatv(
'Mass1',ms1,is_available,lsubmodel,unitab)
146 CALL hm_get_floatv(
'Inertia1',in1,is_available,lsubmodel,unitab
147 CALL hm_get_floatv(
'r1x',r1(1),is_available,lsubmodel,unitab)
148 CALL hm_get_floatv(
'r1y',r1(2),is_available,lsubmodel,unitab)
149 CALL hm_get_floatv(
'r1z',r1(3),is_available,lsubmodel,unitab)
151 CALL hm_get_floatv(
'Mass2',ms2,is_available,lsubmodel,unitab)
152 CALL hm_get_floatv(
'Inertia2',in2,is_available,lsubmodel,unitab)
153 CALL hm_get_floatv(
'r2x',r2(1),is_available,lsubmodel,unitab)
154 CALL hm_get_floatv(
'r2y',r2(2),is_available,lsubmodel,unitab)
155 CALL hm_get_floatv(
'r2z',r2(3),is_available,lsubmodel,unitab)
157 IF(key(1:4)=='diff
') THEN
158 CALL HM_GET_FLOATV('mass3
',MS3,IS_AVAILABLE,LSUBMODEL,UNITAB)
159 CALL HM_GET_FLOATV('inertia3
',IN3,IS_AVAILABLE,LSUBMODEL,UNITAB)
160 CALL HM_GET_FLOATV('r3x',r3(1),is_available,lsubmodel,unitab)
161 CALL hm_get_floatv(
'r3y',r3(2),is_available,lsubmodel,unitab)
162 CALL hm_get_floatv(
'r3z',r3(3),is_available,lsubmodel,unitab)
165 n0 = usr2sys(n0,itabm,mess,id)
166 n1 = usr2sys(n1,itabm,mess,id)
167 n2 = usr2sys(n2,itabm,mess,id)
168 mass(n0) = mass(n0) + ms0
169 mass(n1) = mass(n1) + ms1
170 mass(n2) = mass(n2) + ms2
171 iner(n0) = iner(n0) + in0
172 iner(n1) = iner(n1) + in1
173 iner(n2) = iner(n2) + in2
175 IF(r1(1)==zero.AND.r1(2)==zero.AND.r1(3)==zero) r1(1)=1.
176 IF(r2(1)==zero.AND.r2(2)==zero.AND.r2(3)==zero) r2(1)=1.
177 CALL kinset(512,itab(n0),ikine(n0),7,0,ikine1lag(n0))
178 CALL kinset(512,itab(n1),ikine(n1),7,0,ikine1lag(n1))
179 CALL kinset(512,itab(n2),ikine(n2),7,0,ikine1lag(n2))
181 IF(key(1:4)==
'GEAR')
THEN
187 ELSEIF(key(1:4)==
'DIFF')
THEN
189 n3 = usr2sys(n3,itabm,mess,id)
190 CALL kinset(512,itab(n3),ikine(n3),7,0,ikine1lag(n3))
191 IF(r3(1)==zero.AND.r3(2)==zero.AND.r3(3)==zero) r3(1)=1.
192 mass(n3) = mass(n3) + ms3
193 iner(n3) = iner(n3) + in3
194 ELSEIF(key(1:4)==
'RACK')
THEN
205 l1 = one/sqrt(r1(1)*r1(1)+r1(2)*r1(
206 l2 = one/sqrt(r2(1)*r2(1)+r2(2)*r2(2)+r2(3)*r2(3))
207 l3 = one/sqrt(r3(1)*r3(1)+r3(2)*r3(2)+r3(3)*r3(3))
221 gjbufr( 1,i) = one/
alpha
243 lag_nhf = lag_nhf + 55
244 lag_ncf = lag_ncf + 11
245 lag_nkf = lag_nkf + 60
246 WRITE(iout,1101)id,jtyp,itab(n1),itab(n2),itab(n0),
247 .
alpha,ms1,ms2,ms0,in1,in2,in0,
248 . r1(1),r1(2),r1(3),r2(1),r2(2),r2(3)
249 ELSEIF (jtyp==2)
THEN
250 lag_nhf = lag_nhf + 78
251 lag_ncf = lag_ncf + 13
252 lag_nkf = lag_nkf + 108
253 WRITE(iout,1102)id,jtyp,itab(n1),itab(n2),itab(n3),itab(n0),
254 .
alpha,ms1,ms2,ms3,ms0,in1,in2,in3,in0,
255 . r1(1),r1(2),r1(3),r2(1),r2(2),r2(3),r3(1),r3(2),r3(3)
256 ELSEIF (jtyp==3)
THEN
257 lag_nhf = lag_nhf + 36
258 lag_ncf = lag_ncf + 9
259 lag_nkf = lag_nkf + 48
260 WRITE(iout,1101)id,jtyp,itab(n1),itab(n2),itab(n0),
262 . r1(1),r1(2),r1(3),r2(1),r2(2),r2(3)
269 .
' COMPLEX JOINTS (GEAR TYPE) '/
270 .
' --------------------------- ')
271 1101
FORMAT( 5x,
' JOINT ID . . . . . . . . . . . .',i10
272 . /10x,
'JOINT TYPE . . . . . . . . . . .',i10
273 . /10x,
'N1 . . . . . . . . . . . . . . .',i10
274 . /10x,
'N2 . . . . . . . . . . . . . . .',i10
275 . /10x,
'MAIN NODE. . . . . . . . . . .',i10
276 . /10x,
'ALPHA. . . . . . . . . . . . . .',1pg20.13
277 . /10x,
'ADDED N1 MASS. . . . . . . . .',1pg20.13
278 . /10x,
'ADDED N2 MASS. . . . . . . . .',1pg20.13
279 . /10x,
'ADDED MAIN MASS . . . . . . .',1pg20.13
280 . /10x,
'ADDED N1 INERTIA . . . . . . . .',1pg20.13
281 . /10x,
'ADDED N2 INERTIA . . . . . . . .',1pg20.13
282 . /10x,
'ADDED MAIN INERTIA . . . . . .',1pg20.13
284 . /10x,
' ',1pg20.13,1pg20.13,1pg20.13
286 . /10x,
' ',1pg20.13,1pg20.13,1pg20.13/)
287 1102
FORMAT( 5x,
' JOINT ID . . . . . . . . . . . .',i10
288 . /10x,
'JOINT TYPE . . . . . . . . . . .',i10
289 . /10x,
'N1 . . . . . . . . . . . . . . .',i10
290 . /10x,
'N2 . . . . . . . . . . . . . . .',i10
291 . /10x,
'N3 . . . . . . . . . . . . . . .',i10
292 . /10x,
'MAIN NODE. . . . . . . . . . .',i10
293 . /10x,
'ALPHA. . . . . . . . . . . . . .',1pg20.13
294 . /10x,
'ADDED N1 MASS. . . . . . . . .',1pg20.13
295 . /10x,
'ADDED N2 MASS. . . . . . . . .',1pg20.13
296 . /10x,
'ADDED N3 MASS. . . . . . . . .',1pg20.13
297 . /10x,
'ADDED MAIN MASS . . . . . . .',1pg20.13
298 . /10x,
'ADDED N1 INERTIA . . . . . . . .',1pg20.13
299 . /10x,
'ADDED N2 INERTIA . . . . . . . .',1pg20.13
300 . /10x,
'ADDED N3 INERTIA . . . . . . . .',1pg20.13
301 . /10x,
'ADDED MAIN INERTIA . . . . . .',1pg20.13
303 . /10x,
' ',1pg20.13,g20.13,g20.13
305 . /10x,
' ',1pg20.13,g20.13,g20.13
307 . /10x,
' ',1pg20.13,g20.13,g20.13/)