38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108#include "implicit_f.inc"
109
110
111
112 INTEGER IOUT,NUVAR,NEL,IPROP,
113 . IX(4,NEL) ,
114 . GET_U_PNU,GET_U_PID,GET_U_MID,GET_U_MNU,
115 . KFUNC,KMAT,KPROP
117 . xl(nel) ,mass(nel) ,xiner(nel) ,stifm(nel) ,
118 . stifr(nel),viscm(nel) ,viscr(nel),uvar(nuvar,*),
119 . get_u_mat,get_u_geo
122 parameter(kfunc=29)
123 parameter(kmat=31)
124 parameter(kprop=47)
125
126
127
129 . amas,iner,k11,k44,k55,k66,k5b,k6c,
130 . xlimg,xlim,xxlim,yy1lim,yy2lim,zz1lim,zz2lim,
131 . ncf,idamping
132 INTEGER I
133
134 amas = get_u_geo(8,iprop)
135 iner = get_u_geo(9,iprop)
136 k11 = get_u_geo(10,iprop)
137 k44 = get_u_geo(11,iprop)
138 k55 = get_u_geo(12,iprop)
139 k66 = get_u_geo(13,iprop)
140 k5b = get_u_geo(14,iprop)
141 k6c = get_u_geo(15,iprop)
142
143 ncf = get_u_geo(35,iprop)
144
145 idamping = get_u_geo(36,iprop)
146
147
148
149 DO i=1,nel
150 IF (xl(i) == zero)THEN
151 WRITE(iout,*)' **ERROR ZERO LENGTH SPRING :'
152 ENDIF
153 ENDDO
154
155
156
157 DO i=1,nel
158 mass(i) = amas * xl(i)
159 xiner(i) = iner * xl(i)
160
161 uvar(1,i) = zero
162 uvar(2,i) = zero
163 uvar(3,i) = zero
164 uvar(4,i) = zero
165 uvar(5,i) = zero
166 uvar(6,i) = zero
167
168 uvar(7,i) = zero
169 uvar(8,i) = zero
170 uvar(9,i) = zero
171 uvar(10,i) = zero
172 uvar(11,i) = zero
173 uvar(12,i) = zero
174 uvar(13,i) = zero
175 uvar(14,i) = zero
176 uvar(15,i) = zero
177 uvar(16,i) = zero
178 uvar(17,i) = zero
179 uvar(18,i) = zero
180
181 uvar(19,i) = k11 / xl(i)
182 uvar(20,i) = k44 / xl(i)
183 uvar(21,i) = k55 / xl(i) / xl(i) / xl(i)
184 uvar(22,i) = k66 / xl(i) / xl(i) / xl(i)
185 uvar(23,i) = k5b / xl(i) / xl(i) / xl(i)
186 uvar(24,i) = k6c / xl(i) / xl(i) / xl(i)
187
188 uvar(25,i) =
max(uvar(19,i),
189 . uvar(21,i)+abs(uvar(23,i)),
190 . uvar(22,i)+abs(uvar(24,i)))
191 uvar(26,i) =
max(uvar(20,i),k55 / xl(i),k66 / xl(i))
192 stifm(i) = uvar(25,i)
193 stifr(i) = uvar(26,i)
194 viscm(i) = zero
195 viscr(i) = zero
196 uvar(27,i) = mass(i)
197 uvar(28,i) = xiner(i)
198 uvar(30,i) = one/xl(i)
199
200
201
202 IF (idamping > zero) THEN
203 uvar(31,i) = zero
204 uvar(32,i) = zero
205 uvar(33,i) = zero
206 uvar(34,i) = zero
207 uvar(35,i) = zero
208 uvar(36,i) = zero
209 ENDIF
210
211 IF (ncf > zero) THEN
212 uvar(37,i) = zero
213 uvar(38,i) = zero
214 uvar(39,i) = zero
215 uvar(40,i) = zero
216 uvar(41,i) = zero
217 uvar(42,i) = zero
218 ENDIF
219 ENDDO
220
221 RETURN
integer function get_u_pid(ip)
integer function get_u_pnu(ivar, ip, k)
integer function get_u_mid(im)
integer function get_u_mnu(ivar, im, k)