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