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, SKFLAG,IUNIT
65
66 INTEGER ID
67 CHARACTER(LEN=NCHARTITLE) :: TITR
68 LOGICAL IS_ENCRYPTED
69 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
70
71
72
73 INTEGER IERROR,IDSK1,IDSK2,IFUN_RX,IFUN_RY,IFUN_RZ,
74 . IFUN_CRX,IFUN_CRY,IFUN_CRZ, ZEROI,OFLAG
76 . xk,xtyp,xflg,xsk1,xsk2,knn,krx,kry,krz,cr,crx,cry,crz,
77 . mass,iner,fac_m,fac_l,fac_t,fac_ct,fac_cr,fac_kt,fac_kr,
78 . fac_ctx,fac_crx,fac_mm
79
80 INTEGER SET_U_PNU,SET_U_GEO,KFUNC
82 parameter(kfunc=29)
83 DATA zeroi/0/
84 LOGICAL IS_AVAILABLE
85
86
87
88 fac_m = unitab%FAC_M(iunit)
89 fac_l = unitab%FAC_L(iunit)
90 fac_t = unitab%FAC_T(iunit)
91 fac_mm = one / fac_t
92 fac_ct = fac_m / fac_t
93 fac_cr = fac_m * fac_l**2 / fac_t
94 fac_kt = fac_ct / fac_t
95 fac_kr = fac_cr / fac_t
96 fac_ctx = fac_t / fac_l
97 fac_crx = fac_t
98 oflag = 0
99
100
101
102
103 CALL hm_get_intv(
'Idsk1',idsk1,is_available,lsubmodel)
104 CALL hm_get_intv(
'Idsk2',idsk2,is_available,lsubmodel)
105 CALL hm_get_intv(
'Xr_fun',ifun_rx,is_available,lsubmodel)
106 CALL hm_get_intv(
'Yr_fun',ifun_ry,is_available,lsubmodel)
107 CALL hm_get_intv(
'Zr_fun',ifun_rz,is_available,lsubmodel)
108
109
110
117
118
119
120
121 CALL hm_get_intv(
'Crx_Fun',ifun_crx,is_available,lsubmodel)
122 IF(.NOT.is_available) oflag = oflag + 1
123 CALL hm_get_intv(
'Cry_Fun',ifun_cry,is_available,lsubmodel)
124 IF(.NOT.is_available) oflag = oflag + 1
125 CALL hm_get_intv(
'Crz_Fun',ifun_crz,is_available,lsubmodel)
126 IF(.NOT.is_available) oflag = oflag + 1
127
128
129
131 IF(.NOT.is_available) oflag = oflag + 1
133 IF(.NOT.is_available) oflag = oflag + 1
135 IF(.NOT.is_available) oflag = oflag + 1
136
137 IF (idsk1<=0.OR.idsk1<=0) THEN
139 . msgtype=msgerror,
140 . anmode=aninfo_blind_1,
142 . c1=titr)
143 ENDIF
144 IF (knn==0.) THEN
146 . msgtype=msgerror,
147 . anmode=aninfo_blind_1,
149 . c1=titr)
150 ENDIF
151 IF (cr<zero.OR.cr>1.) THEN
153 . msgtype=msgerror,
154 . anmode=aninfo_blind_1,
156 . c1=titr)
157 ENDIF
158 IF (cr==zero) cr = fiveem2
159
160 xtyp = ityp
161 xflg = skflag
162 xsk1 = idsk1
163 xsk2 = idsk2
164 mass = zero
165 iner = zero
166
167 IF(crx==zero.AND.ifun_crx/=0)crx = one
168 IF(cry==zero.AND.ifun_cry/=0)cry = one
169 IF(crz==zero.AND.ifun_crz/=0)crz = one
170 IF(krx==zero.AND.ifun_rx/=0) krx = one
171 IF(kry==zero.AND.ifun_ry/=0) kry = one
172 IF(krz==zero.AND.ifun_rz/=0) krz = one
173
174 IF (ifun_rx /= 0) krx = krx * fac_mm
175 IF (ifun_ry /= 0) kry = kry * fac_mm
176 IF (ifun_rz /= 0) krz = krz * fac_mm
177 IF (ifun_crx /= 0) crx = crx * fac_mm
178 IF (ifun_cry /= 0) cry = cry * fac_mm
179 IF (ifun_crz /= 0) crz = crz * fac_mm
180
181 pargeo(1) = 0
182 pargeo(2) = xk
183 pargeo(3) = 0
184
225
226 WRITE(iout,500)
227 IF(is_encrypted)THEN
228 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
229 ELSE
230 IF (oflag==6) THEN
231 WRITE(iout,1001) idsk1,idsk2,xk,cr,knn,krx,kry,krz,
232 . ifun_rx,ifun_ry,ifun_rz
233 ELSE
234 WRITE(iout,1000) idsk1,idsk2,xk,cr,knn,krx,kry,krz,
235 . ifun_rx,ifun_ry,ifun_rz,crx,cry,crz,
236 . ifun_crx,ifun_cry,ifun_crz
237 ENDIF
238 ENDIF
239
240 RETURN
241 500 FORMAT(
242 & 5x,'JOINT TYPE . . . . . . . . . SPHERICAL JOINT'//)
243 1000 FORMAT(
244 & 5x,'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
245 & 5x,'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10/,
246 & 5x,'STIFFNESS FOR INTERFACE K=E*A/L. . . . =',1pg20.13/,
247 & 5x,'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
248 & 5x,'BLOCKING STIFFNESS KNN . . . . . . . . =',1pg20.13/,
249 & 5x,'LINEAR ROTATIONAL STIFFNESS KRX. . . . =',1pg20.13/,
250 & 5x,'LINEAR ROTATIONAL STIFFNESS KRY. . . . =',1pg20.13/,
251 & 5x,'LINEAR ROTATIONAL STIFFNESS KRZ. . . . =',1pg20.13/,
252 & 5x,'USER X ROT FUNCTION. . . . . . . . . . =',i10/,
253 & 5x,'USER Y ROT FUNCTION. . . . . . . . . . =',i10/,
254 & 5x,'USER Z ROT FUNCTION. . . . . . . . . . =',i10/,
255 & 5x,'LINEAR DAMPING CRX . . . . . . . . . . =',1pg20.13/,
256 & 5x,'LINEAR DAMPING CRY . . . . . . . . . . =',1pg20.13/,
257 & 5x,'LINEAR DAMPING CRZ . . . . . . . . . . =',1pg20.13/,
258 & 5x,'USER RX DAMPING FUNCTION . . . . . . . =',i10/,
259 & 5x,'USER RY DAMPING FUNCTION . . . . . . . =',i10/,
260 & 5x,'USER RZ DAMPING FUNCTION . . . . . . . =',i10//)
261 1001 FORMAT(
262 & 5x,'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
263 & 5x,'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10/,
264 & 5x,'STIFFNESS FOR INTERFACE K=E*A/L. . . . ='
265 & 5x,'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
266 & 5x,'BLOCKING STIFFNESS KNN . . . . . . . . =',1pg20.13/,
267 & 5x,'LINEAR ROTATIONAL STIFFNESS KRX. . . . =',1pg20.13/,
268 & 5x,'LINEAR ROTATIONAL STIFFNESS KRY. . . . =',1pg20.13/,
269 & 5x,'LINEAR ROTATIONAL STIFFNESS KRZ. . . . =',1pg20.13/,
270 & 5x,'USER X ROT FUNCTION. . . . . . . . . . =',i10/,
271 & 5x,'USER Y ROT FUNCTION. . . . . . . . . . =',i10/,
272 & 5x,'USER Z ROT FUNCTION. . . . . . . . . . =',i10//)
273 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)