38 . UNITAB,IUNIT,ID,TITR,LSUBMODEL)
46#include "implicit_f.inc"
62 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
63 INTEGER IOUT, ITYP, SKFLAG,IUNIT
67 CHARACTER(LEN=NCHARTITLE) :: TITR
73 INTEGER IERROR,IDSK1,,IFUN_XX,IFUN_YY,IFUN_ZZ,
74 . ifun_rx,ifun_ry,ifun_rz,ifun_cxx,ifun_cyy,ifun_czz,
75 . ifun_crx,ifun_cry,ifun_crz,oflag
76 my_real xk,xtyp,xflg,xsk1,xsk2,mass,iner,
77 . cr,kxx,kyy,kzz,krx,kry,krz,cxx,cyy,czz,crx,cry,crz,
78 . fac_m,fac_l,fac_t,fac_ct,fac_cr,fac_kt,fac_kr,fac_ctx,fac_crx,
81 INTEGER SET_U_PNU,SET_U_GEO,KFUNC
84 EXTERNAL set_u_pnu,set_u_geo
88 fac_m = unitab%FAC_M(iunit)
89 fac_l = unitab%FAC_L(iunit)
90 fac_t = unitab%FAC_T(iunit)
91 fac_ff = fac_m / fac_t
93 fac_ct = fac_m / fac_t
94 fac_cr = fac_m * fac_l**2 / fac_t
95 fac_kt = fac_ct / fac_t
96 fac_kr = fac_cr / fac_t
97 fac_ctx = fac_t / fac_l
104 CALL hm_get_intv(
'Idsk1',idsk1,is_available,lsubmodel)
105 CALL hm_get_intv(
'Idsk2',idsk2,is_available,lsubmodel)
106 CALL hm_get_intv(
'Xt_fun',ifun_xx,is_available,lsubmodel)
107 CALL hm_get_intv('yt_fun
',IFUN_YY,IS_AVAILABLE,LSUBMODEL)
108 CALL HM_GET_INTV('zt_fun
',IFUN_ZZ,IS_AVAILABLE,LSUBMODEL)
109 CALL HM_GET_INTV('xr_fun
',IFUN_RX,IS_AVAILABLE,LSUBMODEL)
110 CALL HM_GET_INTV('yr_fun
',IFUN_RY,IS_AVAILABLE,LSUBMODEL)
111 CALL HM_GET_INTV('zr_fun
',IFUN_RZ,IS_AVAILABLE,LSUBMODEL)
115 CALL HM_GET_FLOATV('xk
',XK,IS_AVAILABLE,LSUBMODEL,UNITAB)
116 CALL HM_GET_FLOATV('cr
',CR,IS_AVAILABLE,LSUBMODEL,UNITAB)
117 CALL HM_GET_FLOATV('ktx
',KXX,IS_AVAILABLE,LSUBMODEL,UNITAB)
118 CALL HM_GET_FLOATV('kty
',KYY,IS_AVAILABLE,LSUBMODEL,UNITAB)
119 CALL HM_GET_FLOATV('ktz
',KZZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
120 CALL HM_GET_FLOATV('krx
',KRX,IS_AVAILABLE,LSUBMODEL,UNITAB)
121 CALL HM_GET_FLOATV('kry
',KRY,IS_AVAILABLE,LSUBMODEL,UNITAB)
122 CALL HM_GET_FLOATV('krz
',KRZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
127 CALL HM_GET_INTV('ctx_fun
',IFUN_CXX,IS_AVAILABLE,LSUBMODEL)
128.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
129 CALL HM_GET_INTV('cty_fun
',IFUN_CYY,IS_AVAILABLE,LSUBMODEL)
130.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
131 CALL HM_GET_INTV('ctz_fun
',IFUN_CZZ,IS_AVAILABLE,LSUBMODEL)
132.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
133 CALL HM_GET_INTV('crx_fun
',IFUN_CRX,IS_AVAILABLE,LSUBMODEL)
134.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
135 CALL HM_GET_INTV('cry_fun
',IFUN_CRY,IS_AVAILABLE,LSUBMODEL)
136.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
137 CALL HM_GET_INTV('crz_fun
',IFUN_CRZ,IS_AVAILABLE,LSUBMODEL)
138.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
142 CALL HM_GET_FLOATV('ctx
',CXX,IS_AVAILABLE,LSUBMODEL,UNITAB)
143.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
144 CALL HM_GET_FLOATV('cty
',CYY,IS_AVAILABLE,LSUBMODEL,UNITAB)
145.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
146 CALL HM_GET_FLOATV('ctz
',CZZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
147.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
148 CALL HM_GET_FLOATV('crx
',CRX,IS_AVAILABLE,LSUBMODEL,UNITAB)
149.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
150 CALL HM_GET_FLOATV('cry
',CRY,IS_AVAILABLE,LSUBMODEL,UNITAB)
151.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
152 CALL HM_GET_FLOATV('crz
',CRZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
153.NOT.
IF(IS_AVAILABLE) OFLAG = OFLAG + 1
155.OR.
IF (IDSK1<=0IDSK2<=0) THEN
156 CALL ANCMSG(MSGID=386,
158 . ANMODE=ANINFO_BLIND_1,
171.AND.
IF(CXX==ZEROIFUN_CXX/=0)CXX = ONE
172.AND.
IF(CYY==ZEROIFUN_CYY/=0)CYY = ONE
173.AND.
IF(CZZ==ZEROIFUN_CZZ/=0)CZZ = ONE
174.AND.
IF(CRX==ZEROIFUN_CRX/=0)CRX = ONE
175.AND.
IF(CRY==ZEROIFUN_CRY/=0)CRY = ONE
176.AND.
IF(CRZ==ZEROIFUN_CRZ/=0)CRZ = ONE
178.AND.
IF(KXX==ZEROIFUN_XX/=0) KXX = ONE
179.AND.
IF(KYY==ZEROIFUN_YY/=0) KYY = ONE
180.AND.
IF(KZZ==ZEROIFUN_ZZ/=0) KZZ = ONE
181.AND.
IF(KRX==ZEROIFUN_RX/=0) KRX = ONE
182.AND.
IF(KRY==ZEROIFUN_RY/=0) KRY = ONE
183.AND.
IF(KRZ==ZEROIFUN_RZ/=0) KRZ = ONE
185 IF (IFUN_XX /= 0) KXX = KXX * FAC_FF
186 IF (IFUN_YY /= 0) KYY = KYY * FAC_FF
187 IF (IFUN_ZZ /= 0) KZZ = KZZ * FAC_FF
188 IF (IFUN_RX /= 0) KRX = KRX * FAC_MM
189 IF (IFUN_RY /= 0) KRY = KRY * FAC_MM
190 IF (IFUN_RZ /= 0) KRZ = KRZ * FAC_MM
191 IF (IFUN_CXX /= 0) CXX = CXX * FAC_FF
192 IF (IFUN_CYY /= 0) CYY = CYY * FAC_FF
193 IF (IFUN_CZZ /= 0) CZZ = CZZ * FAC_FF
194 IF (IFUN_CRX /= 0) CRX = CRX * FAC_MM
195 IF (IFUN_CRY /= 0) CRY = CRY * FAC_MM
196 IF (IFUN_CRZ /= 0) CRZ = CRZ * FAC_MM
202 IERROR = SET_U_GEO(1,XTYP)
203 IERROR = SET_U_GEO(2,XSK1)
204 IERROR = SET_U_GEO(3,XSK2)
205 IERROR = SET_U_GEO(4,KXX)
206 IERROR = SET_U_GEO(5,KYY)
207 IERROR = SET_U_GEO(6,KZZ)
208 IERROR = SET_U_GEO(7,KRX)
209 IERROR = SET_U_GEO(8,KRY)
210 IERROR = SET_U_GEO(9,KRZ)
211 IERROR = SET_U_GEO(10,ZERO)
212 IERROR = SET_U_GEO(11,ZERO)
213 IERROR = SET_U_GEO(12,MASS)
214 IERROR = SET_U_GEO(13,INER)
215 IERROR = SET_U_GEO(14,XFLG)
216 IERROR = SET_U_GEO(15,ZERO)
217 IERROR = SET_U_GEO(16,ZERO)
218 IERROR = SET_U_GEO(17,ZERO)
219 IERROR = SET_U_GEO(18,ZERO)
220 IERROR = SET_U_GEO(19,ZERO)
221 IERROR = SET_U_GEO(20,ZERO)
222 IERROR = SET_U_GEO(21,CXX)
223 IERROR = SET_U_GEO(22,CYY)
224 IERROR = SET_U_GEO(23,CZZ)
225 IERROR = SET_U_GEO(24,CRX)
226 IERROR = SET_U_GEO(25,CRY)
227 IERROR = SET_U_GEO(26,CRZ)
228 IERROR = SET_U_GEO(27,FAC_CTX)
229 IERROR = SET_U_GEO(28,FAC_CRX)
230 IERROR = SET_U_PNU(1,IFUN_XX,KFUNC)
231 IERROR = SET_U_PNU(2,IFUN_YY,KFUNC)
232 IERROR = SET_U_PNU(3,IFUN_ZZ,KFUNC)
233 IERROR = SET_U_PNU(4,IFUN_RX,KFUNC)
234 IERROR = SET_U_PNU(5,IFUN_RY,KFUNC)
235 IERROR = SET_U_PNU(6,IFUN_RZ,KFUNC)
236 IERROR = SET_U_PNU(7,IFUN_CXX,KFUNC)
237 IERROR = SET_U_PNU(8,IFUN_CYY,KFUNC)
238 IERROR = SET_U_PNU(9,IFUN_CZZ,KFUNC)
239 IERROR = SET_U_PNU(10,IFUN_CRX,KFUNC)
240 IERROR = SET_U_PNU(11,IFUN_CRY,KFUNC)
241 IERROR = SET_U_PNU(12,IFUN_CRZ,KFUNC)
245 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
248 WRITE(IOUT,1001)IDSK1,IDSK2,XK,CR,KXX,KYY,KZZ,
249 . KRX,KRY,KRZ,IFUN_XX,IFUN_YY,IFUN_ZZ,
250 . IFUN_RX,IFUN_RY,IFUN_RZ
252 WRITE(IOUT,1000)IDSK1,IDSK2,XK,CR,KXX,KYY,KZZ,
253 . KRX,KRY,KRZ,IFUN_XX,IFUN_YY,IFUN_ZZ,
254 . IFUN_RX,IFUN_RY,IFUN_RZ,
255 . CXX,CYY,CZZ,CRX,CRY,CRZ,
256 . IFUN_CXX,IFUN_CYY,IFUN_CZZ,
257 . IFUN_CRX,IFUN_CRY,IFUN_CRZ
263 & 5X,'joint
TYPE . . . . . . . . . . free spring joint
'//)
265 & 5X,'skew 1 frame id. . . . . . . . . . . . =
',I10/,
266 & 5X,'skew 2 frame id. . . . . . . . . . . . =
',I10/,
267 & 5X,'stiffness
for INTERFACE k=e*a/l. . . . =
',1PG20.13/,
268 & 5X,'critical
damping coefficient . . . . . =
',1PG20.13/,
269 & 5X,'linear translational stiffness kxx . . =
',1PG20.13/,
270 & 5X,'linear translational stiffness kyy . . =
',1PG20.13/,
271 & 5X,'linear translational stiffness kzz . . =
',1PG20.13/,
272 & 5X,'linear torsional stiffness krx . . . . =
',1PG20.13/,
273 & 5X,'linear torsional stiffness kry . . . . =
',1PG20.13/,
274 & 5X,'linear torsional stiffness krz . . . . =
',1PG20.13/,
275 & 5X,'user x translation function. . . . . . =
',I10/,
276 & 5X,'user y translation function. . . . . . =
',I10/,
277 & 5X,'user z translation function. . . . . . =
',I10/,
278 & 5X,'user rx torsion
FUNCTION id. . . . . . =
',I10/,
279 & 5X,'user ry torsion function id. . . . . . =
',I10/,
280 & 5X,'user rz torsion function id. . . .
',I10/,
281 & 5X,'linear
damping cxx . . . . . . . . . . =
',1PG20.13/,
282 & 5X,'linear
damping cyy . . . . . . . . . . =
',1PG20.13/,
283 & 5X,'linear
damping czz . . . . . . . . . . =
',1PG20.13/,
284 & 5X,'linear
damping crx . . . . . . . . . . =
',1PG20.13/,
285 & 5X,'linear
damping cry . . . . . . . . . . =
',1PG20.13/,
286 & 5X,'linear
damping crz . . . . . . . . . . =
',1PG20.13/,
287 & 5X,'user xx
damping function . . . . . . . =
',I10/,
288 & 5X,'user yy
damping function . . . . . . . =',i10/,
289 & 5x,
'USER ZZ DAMPING FUNCTION . . . . . . . =',i10/,
290 & 5x,
'USER RX DAMPING FUNCTION . . . . . . . =',i10/,
291 & 5x,
'USER RY DAMPING FUNCTION . . . . . . . =',i10/,
292 & 5x,
'USER RZ DAMPING FUNCTION . . . . . . . =',i10//)
294 & 5x,
'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
295 & 5x,
'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10
296 & 5x,
'STIFFNESS FOR INTERFACE K=E*A/L. . . . =',1pg20.13/,
297 & 5x,
'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
298 & 5x,
'LINEAR TRANSLATIONAL STIFFNESS KXX . . =',1pg20.13/,
299 & 5x,
'LINEAR TRANSLATIONAL STIFFNESS KYY . . =',1pg20.13/,
300 & 5x,
'LINEAR TRANSLATIONAL STIFFNESS KZZ . . =',1pg20.13/,
301 & 5x,
'LINEAR TORSIONAL STIFFNESS KRX . . . . =',1pg20.13/,
302 & 5x,
'LINEAR TORSIONAL STIFFNESS KRY . . . . =',1pg20.13/,
303 & 5x,
'LINEAR TORSIONAL STIFFNESS KRZ . . . . =',1pg20.13/,
304 & 5x,
'USER X TRANSLATION FUNCTION. . . . . . =',i10/,
305 & 5x,
'USER Y TRANSLATION FUNCTION. . . . . . =',i10/,
306 & 5x,
'USER Z TRANSLATION FUNCTION. . . . . . =',i10/,
307 & 5x,
'USER RX TORSION FUNCTION ID. . . . . . =',i10/,
308 & 5x,
'USER RY TORSION FUNCTION ID. . . . . . =',i10/,
309 & 5x,
'USER RZ TORSION FUNCTION ID. . . . . . =',i10//)
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)