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 (),INTENT(IN) ::UNITAB
63 INTEGER IOUT, ITYP, SKFLAG,IUNIT
65
66 INTEGER
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_YY,IFUN_ZZ,IFUN_RX,
74 . IFUN_CYY,IFUN_CZZ,IFUN_CRX, ZEROI,OFLAG
76 . xk,xtyp,xflg,xsk1,xsk2,knn,kyy,kzz,krx,cr,cyy,czz,crx,mass,iner,
77 . fac_m,fac_l,fac_t,fac_ct,fac_cr,fac_kt,fac_kr,fac_ctx,fac_crx,
78 . fac_ff,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_ff = fac_m / fac_t
92 fac_mm = one / 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
98 fac_crx = fac_t
99 oflag = 0
100
101
102
103
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(
'Yt_fun',ifun_yy,is_available,lsubmodel)
107 CALL hm_get_intv(
'Zt_fun',ifun_zz,is_available,lsubmodel)
108 CALL hm_get_intv(
'Xr_fun',ifun_rx,is_available,lsubmodel)
109
110
111
118
119
120
121
122 CALL hm_get_intv(
'Cty_Fun',ifun_cyy,is_available,lsubmodel)
123 IF(.NOT.is_available) oflag = oflag + 1
124 CALL hm_get_intv(
'Ctz_Fun',ifun_czz,is_available,lsubmodel)
125 IF(.NOT.is_available) oflag = oflag + 1
126 CALL hm_get_intv(
'Crx_Fun',ifun_crx,is_available,lsubmodel)
127 IF(.NOT.is_available) oflag = oflag + 1
128
129
130
132 IF(.NOT.is_available) oflag = oflag + 1
134 IF(.NOT.is_available) oflag = oflag + 1
136 IF(.NOT.is_available) oflag = oflag + 1
137
138 IF (idsk1<=0.OR.idsk1<=0) THEN
140 . msgtype=msgerror,
141 . anmode=aninfo_blind_1,
143 . c1=titr)
144 ENDIF
145 IF (knn==0.) THEN
147 . msgtype=msgerror,
148 . anmode=aninfo_blind_1,
150 . c1=titr)
151 ENDIF
152 IF (cr<zero.OR.cr>1.) THEN
154 . msgtype=msgerror,
155 . anmode=aninfo_blind_1,
157 . c1=titr)
158 ENDIF
159 IF (cr==zero) cr = fiveem2
160
161 xtyp = ityp
162 xflg = skflag
163 xsk1 = idsk1
164 xsk2 = idsk2
165 mass = zero
166 iner = zero
167
168 IF(kyy==zero.AND.ifun_yy/=0) kyy = one
169 IF(kzz==zero.AND.ifun_zz/=0) kzz = one
170 IF(krx==zero.AND.ifun_rx/=0) krx = one
171 IF(cyy==zero.AND.ifun_cyy/=0)cyy = one
172 IF(czz==zero.AND.ifun_czz/=0)czz = one
173 IF(crx==zero.AND.ifun_crx/=0)crx = one
174
175 IF (ifun_yy /= 0) kyy = kyy * fac_ff
176 IF (ifun_zz /= 0) kzz = kzz * fac_ff
177 IF (ifun_rx /= 0) krx = krx * fac_mm
178 IF (ifun_cyy /= 0) cyy = cyy * fac_ff
179 IF (ifun_czz /= 0) czz = czz * fac_ff
180 IF (ifun_crx /= 0) crx = crx * fac_mm
181
182 pargeo(1) = 0
183 pargeo(2) = xk
184 pargeo(3) = 0
185
226
227 WRITE(iout,500)
228 IF(is_encrypted)THEN
229 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
230 ELSE
231 IF (oflag==6) THEN
232 WRITE(iout,1001) idsk1,idsk2,xk,cr,knn,kyy,kzz,krx,
233 . ifun_yy,ifun_zz,ifun_rx
234 ELSE
235 WRITE(iout,1000) idsk1,idsk2,xk,cr,knn,kyy,kzz,krx,
236 . ifun_yy,ifun_zz,ifun_rx,
237 . cyy,czz,crx,ifun_cyy,ifun_czz,ifun_crx
238 ENDIF
239 ENDIF
240
241 RETURN
242 500 FORMAT(
243 & 5x,'JOINT TYPE . . . . . . . . . . PLANAR JOINT'//)
244 1000 FORMAT(
245 & 5x,'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
246 & 5x,'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10/,
247 & 5x,'STIFFNESS FOR INTERFACE K=E*A/L. . . . =',1pg20.13/,
248 & 5x,'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
249 & 5x,'BLOCKING STIFFNESS KNN . . . . . . . . =',1pg20.13/,
250 & 5x,'LINEAR TRANSLATIONAL STIFFNESS KYY . . =',1pg20.13/,
251 & 5x,'LINEAR TRANSLATIONAL STIFFNESS KZZ . . =',1pg20.13/,
252 & 5x,'LINEAR TORSION STIFFNESS KRX . . . . . =',1pg20.13/,
253 & 5x,'USER Y TRANSLATION FUNCTION. . . . . . =',i10/,
254 & 5x,'USER Z TRANSLATION FUNCTION. . . . . . =',i10/,
255 & 5x,'USER RX TORSION FUNCTION ID. . . . . . =',i10/,
256 & 5x,'linear
damping cyy . . . . . . . . . . =
',1PG20.13/,
257 & 5X,'linear
damping czz . . . . . . . . . . =
',1PG20.13/,
258 & 5X,'linear
damping crx . . . . . . . . . . =
',1PG20.13/,
259 & 5X,'user yy
damping FUNCTION . . . . . . . =
',I10/,
260 & 5X,'user zz
damping function . . . . . . . =
',I10/,
261 & 5X,'user rx
damping function . . . . . . . =
',I10//)
262 1001 FORMAT(
263 & 5X,'skew 1 frame
id. . . . . . . . . . . . =
',I10/,
264 & 5X,'skew 2 frame
id. . . . . . . . . . . . =
',I10/,
265 & 5X,'stiffness
for interface k=e*a/l. . . . =
',1PG20.13/,
266 & 5X,'critical
damping coefficient . . . . . =
',1PG20.13/,
267 & 5X,'blocking stiffness knn . . . . . . . . =',1PG20.13/,
268 & 5X,'linear translational stiffness kyy . . =',1PG20.13/,
269 & 5X,'linear translational stiffness kzz . . =',1PG20.13/,
270 & 5X,'linear torsion stiffness krx . . . . . =',1PG20.13/,
271 & 5X,'user y translation function. . . . . . =',I10/,
272 & 5X,'user z translation function. . . . . . =',I10/,
273 & 5X,'user rx torsion function
id. . . . . . =
',I10//)
274 RETURN
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
for(i8=*sizetab-1;i8 >=0;i8--)
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)