43
44
45
46#include "implicit_f.inc"
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
63 INTEGER IOUT,ITYP,IUNIT
65 INTEGER ID
66 CHARACTER(LEN=NCHARTITLE) :: TITR
67 LOGICAL IS_ENCRYPTED
68 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
69
70
71
72 INTEGER IERROR,IDSK1,IDSK2,IFUN_RY,IFUN_RZ,IFUN_CRY,IFUN_CRZ,
73 . ZEROI,OFLAG
75 . xk,xtyp,xflg,xsk1,xsk2,knn,kry,krz,cr,cry,crz,mass,iner,
76 . fac_m,fac_l,fac_t,fac_ct,fac_cr,fac_kt,fac_kr,fac_ctx,fac_crx,
77 . fac_mm
78
79 INTEGER SET_U_PNU,SET_U_GEO,KFUNC
81 parameter(kfunc=29)
82 DATA zeroi/0/
83 LOGICAL IS_AVAILABLE
84
85
86
87 fac_m = unitab%FAC_M(iunit)
88 fac_l = unitab%FAC_L(iunit)
89 fac_t = unitab%FAC_T(iunit)
90 fac_mm = one / fac_t
91 fac_ct = fac_m / fac_t
92 fac_cr = fac_m * fac_l**2 / fac_t
93 fac_kt = fac_ct / fac_t
94 fac_kr = fac_cr / fac_t
95 fac_ctx = fac_t / fac_l
96 fac_crx = fac_t
97 oflag = 0
98
99
100
101
102 CALL hm_get_intv(
'Idsk1',idsk1,is_available,lsubmodel)
103 CALL hm_get_intv(
'Idsk2',idsk2,is_available,lsubmodel)
104 CALL hm_get_intv(
'Yr_fun',ifun_ry,is_available,lsubmodel)
105 CALL hm_get_intv(
'Zr_fun',ifun_rz,is_available,lsubmodel)
106
107
108
114
115
116
117
118 CALL hm_get_intv(
'Cry_Fun',ifun_cry,is_available,lsubmodel)
119 IF(.NOT.is_available) oflag = oflag + 1
120 CALL hm_get_intv(
'Crz_Fun',ifun_crz,is_available,lsubmodel)
121 IF(.NOT.is_available) oflag = oflag + 1
122
123
124
126 IF(.NOT.is_available) oflag = oflag + 1
128 IF(.NOT.is_available) oflag = oflag + 1
129
130 IF (idsk1<=0.OR.idsk2<=0.) THEN
132 . msgtype=msgerror,
133 . anmode=aninfo_blind_1,
135 . c1=titr)
136 ENDIF
137 IF (knn==0.) THEN
139 . msgtype=msgerror,
140 . anmode=aninfo_blind_1,
142 . c1=titr)
143 ENDIF
144 IF (cr<zero.OR.cr>1.) THEN
146 . msgtype=msgerror,
147 . anmode=aninfo_blind_1,
149 . c1=titr)
150 ENDIF
151 IF (cr==zero) cr = fiveem2
152
153 xtyp = ityp
154 xflg = zero
155 xsk1 = idsk1
156 xsk2 = idsk2
157 mass = zero
158 iner = zero
159
160 IF(cry==zero.AND.ifun_cry/=
161 IF(crz==zero.AND.ifun_crz/=0)crz = one
162 IF(kry==zero.AND.ifun_ry/=0) kry = one
163 IF(krz==zero.AND.ifun_rz/=0) krz = one
164
165 IF (ifun_ry /= 0) kry = kry * fac_mm
166 IF (ifun_rz /= 0) krz = krz * fac_mm
167 IF (ifun_cry /= 0) cry = cry * fac_mm
168 IF (ifun_crz /= 0) crz = crz * fac_mm
169
170 pargeo(1) = 0
171 pargeo(2) = xk
172 pargeo(3) = 0
173
214
215 WRITE(iout,500)
216 IF(is_encrypted)THEN
217 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
218 ELSE
219 IF (oflag==4) THEN
220 WRITE(iout,1001) idsk1,idsk2,xk,cr,knn,kry,krz,
221 . ifun_ry,ifun_rz
222 ELSE
223 WRITE(iout,1000) idsk1,idsk2,xk,cr,knn,kry,krz,
224 . ifun_ry,ifun_rz,cry,crz,ifun_cry,ifun_crz
225 ENDIF
226 ENDIF
227
228 RETURN
229
230 500 FORMAT(
231 & 5x,'JOINT TYPE . . . . . . . . UNIVERSAL JOINT'//)
232 1000 FORMAT(
233 & 5x,'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
234 & 5x,'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10/,
235 & 5x,'STIFFNESS FOR INTERFACE K=E*A/L. . . . =',1pg20.13/,
236 & 5x,'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
237 & 5x,'BLOCKING STIFFNESS KNN . . . . . . . . =',1pg20.13/,
238 & 5x,'LINEAR ROTATIONAL STIFFNESS KYY. . . . =',1pg20.13/,
239 & 5x,'LINEAR ROTATIONAL STIFFNESS KZZ. . . . =',1pg20.13/,
240 & 5x,'USER RY TORSION FUNCTION ID. . . . . . =',i10/,
241 & 5x,'USER RZ TORSION FUNCTION ID. . . . . . =',i10/,
242 & 5x,'LINEAR DAMPING CRY . . . . . . . . . . =',1pg20.13/,
243 & 5x,'LINEAR DAMPING CRZ . . . . . . . . . . =',1pg20.13/,
244 & 5x,'USER RY DAMPING FUNCTION . . . . . . . =',i10/,
245 & 5x,'USER RZ DAMPING FUNCTION . . . . . . . =',i10//)
246 1001 FORMAT(
247 & 5x,'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
248 & 5x,'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10/,
249 & 5x,'STIFFNESS FOR INTERFACE K=E*A/L. . . . =',1pg20.13/,
250 & 5x,'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
251 & 5x,'BLOCKING STIFFNESS KNN . . . . . . . . =',1pg20.13/,
252 & 5x,'LINEAR ROTATIONAL STIFFNESS KYY. . . . =',1pg20.13/,
253 & 5x,'LINEAR ROTATIONAL STIFFNESS KZZ. . . . =',1pg20.13/,
254 & 5x,'USER RY TORSION FUNCTION ID. . . . . . =',i10/,
255 & 5x,'USER RZ TORSION FUNCTION ID. . . . . . =',i10//)
256 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
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)
integer function set_u_pnu(ivar, ip, k)
integer function set_u_geo(ivar, a)