50 use element_mod , only : nixs
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "mvsiz_p.inc"
59
60
61
62
63
64
65 INTEGER IXS(NIXS,*),IXS10(6,*),NEL ,IDDL(*) ,NDOF(*) ,
66 . IADK(*) ,JDIK(*)
67
69 . k_diag(*) ,k_lt(*) ,off(*),
70 . k11(9,*) ,k12(9,*) ,k13(9,*) ,k14(9,*) ,k15(9,*) ,
71 . k16(9,*) ,k17(9,*) ,k18(9,*) ,k19(9,*) ,k10(9,*) ,
72 . k22(9,*) ,k23(9,*) ,k24(9,*) ,k25(9,*) ,k26(9,*) ,
73 . k27(9,*) ,k28(9,*) ,k29(9,*) ,k20(9,*) ,k33(9,*) ,
74 . k34(9,*) ,k35(9,*) ,k36(9,*) ,k37(9,*) ,k38(9,*) ,
75 . k39(9,*) ,k30(9,*) ,k44(9,*) ,k45(9,*) ,k46(9,*) ,
76 . k47(9,*) ,k48(9,*) ,k49(9,*) ,k40(9,*) ,k55(9,*) ,
77 . k56(9,*) ,k57(9,*) ,k58(9,*) ,k59(9,*) ,k50(9,*) ,
78 . k66(9,*) ,k67(9,*) ,k68(9,*) ,k69(9,*) ,k60(9,*) ,
79 . k77(9,*) ,k78(9,*) ,k79(9,*) ,k70(9,*) ,k88(9,*) ,
80 . k89(9,*) ,k80(9,*) ,k99(9,*) ,k90(9,*) ,k00(9,*)
81
82
83
84 INTEGER EP,NN(MVSIZ,10),IPERM1(10),IPERM2(10),N,N1,N2,I
85 INTEGER NI,NJ,N10
86 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
87 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
88
89 n10= 0
90 DO ep = 1,nel
91 nn(ep,1)=ixs(2,ep)
92 nn(ep,2)=ixs(4,ep)
93 nn(ep,3)=ixs(7,ep)
94 nn(ep,4)=ixs(6,ep)
95 nn(ep,5) =ixs10(1,ep)
96 nn(ep,6) =ixs10(2,ep)
97 nn(ep,7) =ixs10(3,ep)
98 nn(ep,8) =ixs10(4,ep)
99 nn(ep,9) =ixs10(5,ep)
100 nn(ep,10)=ixs10(6,ep)
101 IF (nn(ep,5)>0.AND.nn(ep,6)>0.AND.nn(ep,7)>0.AND.
102 . nn(ep,8)>0.AND.nn(ep,9)>0.AND.nn(ep,10)>0)
103 . n10 = n10 + 1
104 ENDDO
105
106 IF (n10<nel) THEN
107
108 n=10
109
110 n1=iperm1(n)
111 n2=iperm2(n)
112 DO ep = 1,nel
113 IF (nn(ep,n)==0.AND.off(ep)>zero) THEN
114 CALL ass10_kkii(n1 ,n2 ,k33(1,ep),k44(1,ep),k34(1,ep),
115 1 k00(1,ep),3 )
116
118 1 k33(1,ep),k44(1,ep),k13(1,ep),k14(1,ep),
119 2 k10(1,ep))
121 1 k33(1,ep),k44(1,ep),k23(1,ep),k24(1,ep),
122 2 k20(1,ep))
124 1 k33(1,ep),k44(1,ep),k33(1,ep),k34(1,ep),
125 2 k30(1,ep))
127 1 k33(1,ep),k44(1,ep),k34(1,ep),k44(1,ep),
128 2 k40(1,ep))
130 1 k33(1,ep),k44(1,ep),k35(1,ep),k45(1,ep),
131 2 k50(1,ep))
133 1 k33(1,ep),k44(1,ep),k36(1,ep),k46(1,ep),
134 2 k60(1,ep))
136 1 k33(1,ep),k44(1,ep),k37(1,ep),k47(1,ep),
137 2 k70(1,ep))
139 1 k33(1,ep),k44(1,ep),k38(1,ep),k48(1,ep),
140 2 k80(1,ep))
142 1 k33(1,ep),k44(1,ep),k39(1,ep),k49(1,ep),
143 2 k90(1,ep))
144 ENDIF
145 ENDDO
146
147 n=9
148
149 n1=iperm1(n)
150 n2=iperm2(n)
151 DO ep = 1,nel
152 IF (nn(ep,n)==0.AND.off(ep)>zero) THEN
153 CALL ass10_kkii(n1 ,n2 ,k22(1,ep),k44(1,ep),k24(1,ep),
154 1 k99(1,ep),3 )
155
157 1 k22(1,ep),k44(1,ep),k12(1,ep),k14(1,ep),
158 2 k19(1,ep))
160 1 k22(1,ep),k44(1,ep),k22(1,ep),k24(1,ep),
161 2 k29(1,ep))
163 1 k22(1,ep),k44(1,ep),k23(1,ep),k34(1,ep),
164 2 k39(1,ep))
166 1 k22(1,ep),k44(1,ep),k24(1,ep),k44(1,ep),
167 2 k49(1,ep))
169 1 k22(1,ep),k44(1,ep),k25(1,ep),k45(1,ep),
170 2 k59(1,ep))
172 1 k22(1,ep),k44(1,ep),k26(1,ep),k46(1,ep),
173 2 k69(1,ep))
175 1 k22(1,ep),k44(1,ep),k27(1,ep),k47(1,ep),
176 2 k79(1,ep))
178 1 k22(1,ep),k44(1,ep),k28(1,ep),k48(1,ep),
179 2 k89(1,ep))
181 1 k22(1,ep),k44(1,ep),k20(1,ep),k40(1,ep),
182 2 k90(1,ep))
183 ENDIF
184 ENDDO
185
186 n=8
187
188 n1=iperm1(n)
189 n2=iperm2(n)
190 DO ep = 1,nel
191 IF (nn(ep,n)==0.AND.off(ep)>zero) THEN
192 CALL ass10_kkii(n1 ,n2 ,k11(1,ep),k44(1,ep),k14(1,ep),
193 1 k88(1,ep),3 )
194
196 1 k11(1,ep),k44(1,ep),k11(1,ep),k14(1,ep),
197 2 k18(1,ep))
199 1 k11(1,ep),k44(1,ep),k12(1,ep),k24(1,ep),
200 2 k28(1,ep))
202 1 k11(1,ep),k44(1,ep),k13(1,ep),k34(1,ep),
203 2 k38(1,ep))
205 1 k11(1,ep),k44(1,ep),k14(1,ep),k44(1,ep),
206 2 k48(1,ep))
208 1 k11(1,ep),k44(1,ep),k15(1,ep),k45(1,ep),
209 2 k58(1,ep))
211 1 k11(1,ep),k44(1,ep),k16(1,ep),k46(1,ep),
212 2 k68(1,ep))
214 1 k11(1,ep),k44(1,ep),k17(1,ep),k47(1,ep),
215 2 k78(1,ep))
217 1 k11(1,ep),k44(1,ep),k19(1,ep),k49(1,ep),
218 2 k89(1,ep))
220 1 k11(1,ep),k44(1,ep),k10(1,ep),k40(1,ep),
221 2 k80(1,ep))
222 ENDIF
223 ENDDO
224
225 n=7
226
227 n1=iperm1(n)
228 n2=iperm2(n)
229 DO ep = 1,nel
230 IF (nn(ep,n)==0.AND.off(ep)>zero) THEN
231 CALL ass10_kkii(n1 ,n2 ,k33(1,ep),k11(1,ep),k13(1,ep),
232 1 k77(1,ep),3 )
233
235 1 k33(1,ep),k11(1,ep),k13(1,ep),k11(1,ep),
236 2 k17(1,ep))
238 1 k33(1,ep),k11(1,ep),k23(1,ep),k12(1,ep),
239 2 k27(1,ep))
241 1 k33(1,ep),k11(1,ep),k33(1,ep),k13(1,ep),
242 2 k37(1,ep))
244 1 k33(1,ep),k11(1,ep),k34(1,ep),k14(1,ep),
245 2 k47(1,ep))
247 1 k33(1,ep),k11(1,ep),k35(1,ep),k15(1,ep),
248 2 k57(1,ep))
250 1 k33(1,ep),k11(1,ep),k36(1,ep),k16(1,ep),
251 2 k67(1,ep))
253 1 k11(1,ep),k44(1,ep),k38(1,ep),k18(1,ep),
254 2 k78(1,ep))
256 1 k11(1,ep),k44(1,ep),k39(1,ep),k19(1,ep),
257 2 k79(1,ep))
259 1 k11(1,ep),k44(1,ep),k30(1,ep),k10(1,ep),
260 2 k70(1,ep))
261 ENDIF
262 ENDDO
263
264 n=6
265
266 n1=iperm1(n)
267 n2=iperm2(n)
268 DO ep = 1,nel
269 IF (nn(ep,n)==0.AND.off(ep)>zero) THEN
270 CALL ass10_kkii(n1 ,n2 ,k22(1,ep),k33(1,ep),k23(1,ep),
271 1 k66(1,ep),3 )
272
274 1 k22(1,ep),k33(1,ep),k12(1,ep),k13(1,ep),
275 2 k16(1,ep))
277 1 k22(1,ep),k33(1,ep),k22(1,ep),k23(1,ep),
278 2 k26(1,ep))
280 1 k22(1,ep),k33(1,ep),k23(1,ep),k33(1,ep),
281 2 k36(1,ep))
283 1 k22(1,ep),k33(1,ep),k24(1,ep),k34(1,ep),
284 2 k46(1,ep))
286 1 k22(1,ep),k33(1,ep),k25(1,ep),k35(1,ep),
287 2 k56(1,ep))
289 1 k22(1,ep),k33(1,ep),k27(1,ep),k37(1,ep),
290 2 k67(1,ep))
292 1 k22(1,ep),k33(1,ep),k28(1,ep),k38(1,ep),
293 2 k68(1,ep))
295 1 k22(1,ep),k33(1,ep),k29(1,ep),k39(1,ep),
296 2 k69(1,ep))
298 1 k22(1,ep),k33(1,ep),k20(1,ep),k30(1,ep),
299 2 k60(1,ep))
300 ENDIF
301 ENDDO
302
303 n=5
304
305 n1=iperm1(n)
306 n2=iperm2(n)
307 DO ep = 1,nel
308 IF (nn(ep,n)==0.AND.off(ep)>zero) THEN
309 CALL ass10_kkii(n1 ,n2 ,k11(1,ep),k22(1,ep),k12(1,ep),
310 1 k55(1,ep),3 )
311
313 1 k11(1,ep),k22(1,ep),k11(1,ep),k12(1,ep),
314 2 k15(1,ep))
316 1 k11(1,ep),k22(1,ep),k12(1,ep),k22(1,ep),
317 2 k25(1,ep))
319 1 k11(1,ep),k22(1,ep),k13(1,ep),k23(1,ep),
320 2 k35(1,ep))
322 1 k11(1,ep),k22(1,ep),k14(1,ep),k24(1,ep),
323 2 k45(1,ep))
325 1 k11(1,ep),k22(1,ep),k16(1,ep),k26(1,ep),
326 2 k56(1,ep))
328 1 k11(1,ep),k22(1,ep),k17(1,ep),k27(1,ep),
329 2 k57(1,ep))
331 1 k11(1,ep),k22(1,ep),k18(1,ep),k28(1,ep),
332 2 k58(1,ep))
334 1 k11(1,ep),k22(1,ep),k19(1,ep),k29(1,ep),
335 2 k59(1,ep))
337 1 k11(1,ep),k22(1,ep),k10(1,ep),k20(1,ep),
338 2 k50(1,ep))
339 ENDIF
340 ENDDO
341 END IF
342
343 CALL assem_kii(nn(1,1),nel,iddl,iadk,k_diag,k_lt ,k11,3,off)
344 CALL assem_kii(nn(1,2),nel,iddl,iadk,k_diag,k_lt ,k22,3,off)
345 CALL assem_kii(nn(1,3),nel,iddl,iadk,k_diag,k_lt ,k33,3,off)
346 CALL assem_kii(nn(1,4),nel,iddl,iadk,k_diag,k_lt ,k44,3,off)
347
348 CALL assem_kij(nn(1,1),nn(1,2),nel,iddl,iadk,jdik,
349 . k_diag,k_lt,k12,3,off)
350 CALL assem_kij(nn(1,1),nn(1,3),nel,iddl,iadk,jdik,
351 . k_diag,k_lt,k13,3,off)
352 CALL assem_kij(nn(1,1),nn(1,4),nel,iddl,iadk,jdik,
353 . k_diag,k_lt,k14,3,off)
354 CALL assem_kij(nn(1,2),nn(1,3),nel,iddl,iadk,jdik,
355 . k_diag,k_lt,k23,3,off)
356 CALL assem_kij(nn(1,2),nn(1,4),nel,iddl,iadk,jdik,
357 . k_diag,k_lt,k24,3,off)
358 CALL assem_kij(nn(1,3),nn(1,4),nel,iddl,iadk,jdik,
359 . k_diag,k_lt,k34,3,off)
360
361 CALL assem_kii(nn(1,5),nel,iddl,iadk,k_diag,k_lt ,k55,3,off)
362 CALL assem_kii(nn(1,6),nel,iddl,iadk,k_diag,k_lt ,k66,3,off)
363 CALL assem_kii(nn(1,7),nel,iddl,iadk,k_diag,k_lt ,k77,3,off)
364 CALL assem_kii(nn(1,8),nel,iddl,iadk,k_diag,k_lt ,k88,3,off)
365 CALL assem_kii(nn(1,9),nel,iddl,iadk,k_diag,k_lt ,k99,3,off)
366 CALL assem_kii(nn(1,10),nel,iddl,iadk,k_diag,k_lt ,k00,3,off)
367
368 CALL assem_kij(nn(1,1),nn(1,5),nel,iddl,iadk,jdik,
369 . k_diag,k_lt,k15,3,off)
370 CALL assem_kij(nn(1,1),nn(1,6),nel,iddl,iadk,jdik,
371 . k_diag,k_lt,k16,3,off)
372 CALL assem_kij(nn(1,1),nn(1,7),nel,iddl,iadk,jdik,
373 . k_diag,k_lt,k17,3,off)
374 CALL assem_kij(nn(1,1),nn(1,8),nel,iddl,iadk,jdik,
375 . k_diag,k_lt,k18,3,off)
376 CALL assem_kij(nn(1,1),nn(1,9),nel,iddl,iadk,jdik,
377 . k_diag,k_lt,k19,3,off)
378 CALL assem_kij(nn(1,1),nn(1,10),nel,iddl,iadk,jdik,
379 . k_diag,k_lt,k10,3,off)
380 CALL assem_kij(nn(1,2),nn(1,5),nel,iddl,iadk,jdik,
381 . k_diag,k_lt,k25,3,off)
382 CALL assem_kij(nn(1,2),nn(1,6),nel,iddl,iadk,jdik,
383 . k_diag,k_lt,k26,3,off)
384 CALL assem_kij(nn(1,2),nn(1,7),nel,iddl,iadk,jdik,
385 . k_diag,k_lt,k27,3,off)
386 CALL assem_kij(nn(1,2),nn(1,8),nel,iddl,iadk,jdik,
387 . k_diag,k_lt,k28,3,off)
388 CALL assem_kij(nn(1,2),nn(1,9),nel,iddl,iadk,jdik,
389 . k_diag,k_lt,k29,3,off)
390 CALL assem_kij(nn(1,2),nn(1,10),nel,iddl,iadk,jdik,
391 . k_diag,k_lt,k20,3,off)
392 CALL assem_kij(nn(1,3),nn(1,5),nel,iddl,iadk,jdik,
393 . k_diag,k_lt,k35,3,off)
394 CALL assem_kij(nn(1,3),nn(1,6),nel,iddl,iadk,jdik,
395 . k_diag,k_lt,k36,3,off)
396 CALL assem_kij(nn(1,3),nn(1,7),nel,iddl,iadk,jdik,
397 . k_diag,k_lt,k37,3,off)
398 CALL assem_kij(nn(1,3),nn(1,8),nel,iddl,iadk,jdik,
399 . k_diag,k_lt,k38,3,off)
400 CALL assem_kij(nn(1,3),nn(1,9),nel,iddl,iadk,jdik,
401 . k_diag,k_lt,k39,3,off)
402 CALL assem_kij(nn(1,3),nn(1,10),nel,iddl,iadk,jdik,
403 . k_diag,k_lt,k30,3,off)
404 CALL assem_kij(nn(1,4),nn(1,5),nel,iddl,iadk,jdik,
405 . k_diag,k_lt,k45,3,off)
406 CALL assem_kij(nn(1,4),nn(1,6),nel,iddl,iadk,jdik,
407 . k_diag,k_lt,k46,3,off)
408 CALL assem_kij(nn(1,4),nn(1,7),nel,iddl,iadk,jdik,
409 . k_diag,k_lt,k47,3,off)
410 CALL assem_kij(nn(1,4),nn(1,8),nel,iddl,iadk,jdik,
411 . k_diag,k_lt,k48,3,off)
412 CALL assem_kij(nn(1,4),nn(1,9),nel,iddl,iadk,jdik,
413 . k_diag,k_lt,k49,3,off)
414 CALL assem_kij(nn(1,4),nn(1,10),nel,iddl,iadk,jdik,
415 . k_diag,k_lt,k40,3,off)
416 CALL assem_kij(nn(1,5),nn(1,6),nel,iddl,iadk,jdik,
417 . k_diag,k_lt,k56,3,off)
418 CALL assem_kij(nn(1,5),nn(1,7),nel,iddl,iadk,jdik,
419 . k_diag,k_lt,k57,3,off)
420 CALL assem_kij(nn(1,5),nn(1,8),nel,iddl,iadk,jdik,
421 . k_diag,k_lt,k58,3,off)
422 CALL assem_kij(nn(1,5),nn(1,9),nel,iddl,iadk,jdik,
423 . k_diag,k_lt,k59,3,off)
424 CALL assem_kij(nn(1,5),nn(1,10),nel,iddl,iadk,jdik,
425 . k_diag,k_lt,k50,3,off)
426 CALL assem_kij(nn(1,6),nn(1,7),nel,iddl,iadk,jdik,
427 . k_diag,k_lt,k67,3,off)
428 CALL assem_kij(nn(1,6),nn(1,8),nel,iddl,iadk,jdik,
429 . k_diag,k_lt,k68,3,off)
430 CALL assem_kij(nn(1,6),nn(1,9),nel,iddl,iadk,jdik,
431 . k_diag,k_lt,k69,3,off)
432 CALL assem_kij(nn(1,6),nn(1,10),nel,iddl,iadk,jdik,
433 . k_diag,k_lt,k60,3,off)
434 CALL assem_kij(nn(1,7),nn(1,8),nel,iddl,iadk,jdik,
435 . k_diag,k_lt,k78,3,off)
436 CALL assem_kij(nn(1,7),nn(1,9),nel,iddl,iadk,jdik,
437 . k_diag,k_lt,k79,3,off)
438 CALL assem_kij(nn(1,7),nn(1,10),nel,iddl,iadk,jdik,
439 . k_diag,k_lt,k70,3,off)
440 CALL assem_kij(nn(1,8),nn(1,9),nel,iddl,iadk,jdik,
441 . k_diag,k_lt,k89,3,off)
442 CALL assem_kij(nn(1,8),nn(1,10),nel,iddl,iadk,jdik,
443 . k_diag,k_lt,k80,3,off)
444 CALL assem_kij(nn(1,9),nn(1,10),nel,iddl,iadk,jdik,
445 . k_diag,k_lt,k90,3,off)
446
447 RETURN
subroutine ass10_kkij(ni, nj1, nj2, nd, k11, k22, ki1, ki2, kij0)
subroutine ass10_kkii(n1, n2, k11, k22, k12, kjj, nd)
subroutine ass10_kkji(ni, nj1, nj2, nd, k11, k22, ki1, ki2, kij0)
subroutine assem_kii(ni, nel, iddl, iadk, k_diag, k_lt, kii, nd, off)
subroutine assem_kij(ni, nj, nel, iddl, iadk, jdik, k_diag, k_lt, kij, nd, off)