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
109
110
112 USE elbufdef_mod
113 USE multi_fvm_mod
115 use element_mod , only : nixs
116
117
118
119#include "implicit_f.inc"
120
121
122
123#include "vect01_c.inc"
124#include "com01_c.inc"
125#include "task_c.inc"
126#include "param_c.inc"
127#include "mvsiz_p.inc"
128
129
130
131 INTEGER,INTENT(IN) :: IPARG(NPARG,NGROUP),IXS(NIXS,NUMELS), IPM(NPROPMI,NUMMAT),IGEO(NPROPGI,NUMGEO)
132 INTEGER,INTENT(IN) :: NTHGRP2, NUMELS, NUMMAT, NUMGEO, NUMNOD, SITHBUF
133 INTEGER,INTENT(IN) :: ITHBUF(SITHBUF)
134 INTEGER, INTENT(IN):: ITHERM
135 INTEGER, DIMENSION(NITHGR,*), INTENT(IN) :: ITHGRP
137 my_real,
INTENT(IN) :: x(3,numnod) ,pm(npropm,nummat)
138 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
139 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
140
141
142
143 INTEGER II,I,J,JJ,K,L,N, IH, NG, MTE,NEL,
144 . NUVAR, IP,IPT,ISOLNOD,ITENS,IPWWA,ISPAU,IUWWA,
145 . IT,IR,IS,J1,J2,J3,NPTG,NPTR,NPTT,NPTS,NLAY,NFAIL,NVARF,
146 . NC1,NC2,NC3,NC4,NC5,NC6,NC7,NC8,KHBE,KCVT,NUVARTH,
147 . CPT,PID,ISVIS,TSHELL,TSH_ORT,ICSIG,IVISC,NPTL,IL,KK(6)
148 INTEGER :: NITER,IADB,NN,IADV,NVAR,ITYP,IJK,IS_ALE
149 INTEGER :: NODE
151 . s11,s22,s33,s12,s23,s13,
152 . r11,r22,r33,r12,r21,r23,r32,r13,r31,
153 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
154 . t11,t22,t33,t12,t21,t23,t32,t13,t31,
155 . l11,l22,l33,l12,l21,l23,l32,l13,l31,
156 . x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,
157 . x5,y5,z5,x6,y6,z6,x7,y7,z7,x8,y8,z8, cs,sn,var,plag
159 . a_gauss(9,9),sigp(7,81,9), user(100),
160 . strain(6),gama(6),evar_tmp(6),evar(6),sigg(6),
161 . vel(3),v(3,*),w(3,*),tmp_2(mvsiz,3),bfrac,ssp
162 my_real,
DIMENSION(:),
ALLOCATABLE :: wwa
164
165 TYPE(L_BUFEL_) ,POINTER :: LBUF
166 TYPE(G_BUFEL_) ,POINTER :: GBUF
167 TYPE(BUF_MAT_) ,POINTER :: MBUF
168 TYPE(FAIL_LOC_),POINTER :: FBUF
169
170 DATA a_gauss /
171 1 0. ,0. ,0. ,
172 1 0. ,0. ,0. ,
173 1 0. ,0. ,0. ,
174 2 -.577350269189626,0.577350269189626,0. ,
175 2 0. ,0. ,0. ,
176 2 0. ,0. ,0. ,
177 3 -.774596669241483,0. ,0.774596669241483,
178 3 0. ,0. ,0. ,
179 3 0. ,0. ,0. ,
180 4 -.861136311594053,-.339981043584856,0.339981043584856,
181 4 0.861136311594053,0. ,0. ,
182 4 0. ,0. ,0. ,
183 5 -.906179845938664,-.538469310105683,0. ,
184 5 0.538469310105683,0.906179845938664,0. ,
185 5 0. ,0. ,0. ,
186 6 -.932469514203152,-.661209386466265,-.238619186083197,
187 6 0.238619186083197,0.661209386466265,0.932469514203152,
188 6 0. ,0. ,0. ,
189 7 -.949107912342759,-.741531185599394,-.405845151377397,
190 7 0. ,0.405845151377397,0.741531185599394,
191 7 0.949107912342759,0. ,0. ,
192 8 -.960289856497536,-.796666477413627,-.525532409916329,
193 8 -.183434642495650,0.183434642495650,0.525532409916329,
194 8 0.796666477413627,0.960289856497536,0. ,
195 9 -.968160239507626,-.836031107326636,-.613371432700590,
196 9 -.324253423403809,0. ,0.324253423403809,
197 9 0.613371432700590,0.836031107326636,0.968160239507626/
198
199
200
201 ALLOCATE(wwa(239555))
202
203 ijk = 0
204 DO niter=1,nthgrp2
205 ityp=ithgrp(2,niter)
206 nn =ithgrp(4,niter)
207 iadb =ithgrp(5,niter)
209 iadv=ithgrp(7,niter)
210 ii=0
211 IF(ityp==1)THEN
212
213
214 DO j1=1,7
215 DO j2=1,9
216 DO j3=1,9
217 sigp(j1,j2,j3) = zero
218 ENDDO
219 ENDDO
220 ENDDO
221 nuvar = 0
222 ih=iadb
223
224
225 DO WHILE((ithbuf(ih+nn) /= ispmd).AND.(ih < iadb+nn))
226 ih = ih + 1
227 ENDDO
228 IF (ih >= iadb+nn) GOTO 666
229
230
231
232 DO ng=1,ngroup
233 ity = iparg(5,ng)
234 isvis = iparg(60,ng)
235 ivisc = iparg(61,ng)
236
237 IF (ity == ityp) THEN
238 gbuf => elbuf_tab(ng)%GBUF
239 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
240 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
241 nlay = elbuf_tab(ng)%NLAY
242 nptr = elbuf_tab(ng)%NPTR
243 npts = elbuf_tab(ng)%NPTS
244 nptt = elbuf_tab(ng)%NPTT
245 nptg = nptr * npts * nptt
246
247
249 2 mte ,nel ,nft ,iad ,ity ,
250 3 npt ,jale ,ismstr ,jeul ,jtur ,
251 4 jthe ,jlag ,jmult ,khbe ,jivf ,
252 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
253 6 irep ,iint ,igtyp ,israt ,isrot ,
254 7 icsen ,isorth ,isorthg ,ifailure,jsms )
255 tshell = 0
256 tsh_ort = 0
257 IF (igtyp==20 .OR. igtyp==21 .OR. igtyp==22) tshell = 1
258 IF (igtyp==21 .OR. igtyp==22) tsh_ort = 1
259
260 DO i=1,6
261 kk(i) = nel*(i-1)
262 ENDDO
263
264
265 IF (mte /= 0 .AND. mte /= 13) THEN
266 isolnod=iparg(28,ng)
267 is_ale = iparg(7,ng)
268
269
270
271
272
273 IF (kcvt == 0 .AND. isorth > 0) kcvt=-1
274 IF (kcvt == 1 .AND. isorth > 0) kcvt= 2
275 IF (mte >=28) nuvar = ipm(8,ixs(1,nft+1))
276
277 IF(is_ale > 0 .AND. is_ale /= 3)THEN
278
279 tmp_2(1:mvsiz,1:3) = zero
280 DO j=1,8
281 DO i=1,nel
282 node = ixs(j+1,i+nft)
283 IF(node > 0 .AND. node <= numnod) THEN
284 tmp_2(i,1)=tmp_2(i,1) + v(1,ixs(j+1,i+nft))-w(1,ixs(j+1,i+nft))
285 tmp_2(i,2)=tmp_2(i,2) + v(2,ixs(j+1,i+nft))-w(2,ixs(j+1,i+nft))
286 tmp_2(i,3)=tmp_2(i,3) + v(3,ixs(j+1,i+nft))-w(3,ixs(j+1,i+nft))
287 ENDIF
288 ENDDO
289 ENDDO
290 ELSE
291
292 tmp_2(1:mvsiz,1:3) = zero
293 DO j=1,8
294 DO i=1,nel
295 node = ixs(j+1,i+nft)
296 IF(node > 0 .AND. node <= numnod) THEN
297 tmp_2(i,1)=tmp_2(i,1)+v(1,ixs(j+1,i+nft))
298 tmp_2(i,2)=tmp_2(i,2)+v(2,ixs(j+1,i+nft))
299 tmp_2(i,3)=tmp_2(i,3)+v(3,ixs(j+1,i+nft))
300 ENDIF
301 ENDDO
302 ENDDO
303 ENDIF
304
305
306 DO i=1,nel
307 n =i+nft
308 k =ithbuf(ih)
309 ip=ithbuf(ih+nn)
310
311 evar(1:6) = zero
312 evar_tmp(1:6) = zero
313 strain(1:6) = zero
314
315 IF (k == n)THEN
316 ih=ih+1
317
318
319 ii = ((ih-1) - iadb)*
nvar
320 DO WHILE((ithbuf(ih+nn) /= ispmd) .AND. (ih < iadb+nn))
321 ih = ih + 1
322 ENDDO
323
324 IF (ih > iadb+nn) GOTO 666
325
326 DO l=1,239552
327 wwa(l)=zero
328 ENDDO
329 wwa(1) = gbuf%OFF(i)
330 wwa(8) = gbuf%EINT(i)
331
332 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 ) THEN
333 wwa(8) = wwa(8) * gbuf%FILL(i)
334 ENDIF
335
336 wwa(9) = gbuf%RHO(i)
337 IF (gbuf%G_QVIS > 0) wwa(10)= gbuf%QVIS(i)
338 wwa(11)= gbuf%VOL(i)
339 IF(jlag==1 .AND. gbuf%RHO(i)>zero)THEN
340 wwa(11)=gbuf%VOL(i) * pm(89,ixs(1,nft+i))/gbuf%RHO(i)
341 ENDIF
342
343
344
345
346
347 vel(1) = tmp_2(i,1)*one_over_8
348 vel(2) = tmp_2(i,2)*one_over_8
349 vel(3) = tmp_2(i,3)*one_over_8
350 wwa(239547) = vel(1)
351 wwa(239548) = vel(2)
352 wwa(239549) = vel(3)
353 wwa(239550) = zero
354 wwa(239551) = zero
355 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)THEN
356 ssp = elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%SSP(i)
357 wwa(239550)= ssp
358 IF(ssp > zero)THEN
359 wwa(239551)= sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/ssp
360 ENDIF
361 ENDIF
362
363
364
365 s11 = gbuf%SIG(kk(1)+i)
366 s22 = gbuf%SIG(kk(2)+i)
367 s33 = gbuf%SIG(kk(3)+i)
368 s12 = gbuf%SIG(kk(4)+i)
369 s23 = gbuf%SIG(kk(5)+i)
370 s13 = gbuf%SIG(kk(6)+i)
371
372 IF (isvis == 1.AND. mte >=28 )THEN
373 s11=s11 + lbuf%SIGV(kk(1)+i)
374 s22=s22 + lbuf%SIGV(kk(2)+i)
375 s33=s33 + lbuf%SIGV(kk(3)+i)
376 s12=s12 + lbuf%SIGV(kk(4)+i)
377 s23=s23 + lbuf%SIGV(kk(5)+i)
378 s13=s13 + lbuf%SIGV(kk(6)+i)
379 ENDIF
380
381 IF (ivisc > 0 )THEN
382 s11=s11 + lbuf%VISC(kk(1)+i)
383 s22=s22 + lbuf%VISC(kk(2)+i)
384 s33=s33 + lbuf%VISC(kk(3)+i)
385 s12=s12 + lbuf%VISC(kk(4)+i)
386 s23=s23 + lbuf%VISC(kk(5)+i)
387 s13=s13 + lbuf%VISC(kk(6)+i)
388 ENDIF
389 nc1=ixs(2,n)
390 nc2=ixs(3,n)
391 nc3=ixs(4,n)
392 nc4=ixs(5,n)
393 nc5=ixs(6,n)
394 nc6=ixs(7,n)
395 nc7=ixs(8,n)
396 nc8=ixs(9,n)
397 x1=x(1,nc1)
398 y1=x(2,nc1)
399 z1=x(3,nc1)
400 x2=x(1,nc2)
401 y2=x(2,nc2)
402 z2=x(3,nc2)
403 x3=x(1,nc3)
404 y3=x(2,nc3)
405 z3=x(3,nc3)
406 x4=x(1,nc4)
407 y4=x(2,nc4)
408 z4=x(3,nc4)
409 x5=x(1,nc5)
410 y5=x(2,nc5)
411 z5=x(3,nc5)
412 x6=x(1,nc6)
413 y6=x(2,nc6)
414 z6=x(3,nc6)
415 x7=x(1,nc7)
416 y7=x(2,nc7)
417 z7=x(3,nc7)
418 x8=x(1,nc8)
419 y8=x(2,nc8)
420 z8=x(3,nc8)
421
422
423
424
425
426
427
428
429
430
431
432 IF (kcvt > 0) THEN
433
434
435
436 IF (igtyp == 43) THEN
438 . x1, x2, x3, x4, x5, x6, x7, x8,
439 . y1, y2, y3, y4, y5, y6, y7, y8,
440 . z1, z2, z3, z4, z5, z6, z7, z8,
441 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
442
443 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 ) THEN
444 s11 = s11 * gbuf%FILL(i)
445 s22 = s22 * gbuf%FILL(i)
446 s33 = s33 * gbuf%FILL(i)
447 s12 = s12 * gbuf%FILL(i)
448 s23 = s23 * gbuf%FILL(i)
449 s13 = s13 * gbuf%FILL(i)
450 ENDIF
451
452 wwa(35)=s11
453 wwa(36)=s22
454 wwa(37)=s33
455 wwa(38)=s12
456 wwa(39)=s23
457 wwa(40)=s13
458 l11=s11*r11+s12*r12+s13*r13
459 l12=s11*r21+s12*r22+s13*r23
460 l13=s11*r31+s12*r32+s13*r33
461 l21=s12*r11+s22*r12+s23*r13
462 l22=s12*r21+s22*r22+s23*r23
463 l23=s12*r31+s22*r32+s23*r33
464 l31=s13*r11+s23*r12+s33*r13
465 l32=s13*r21+s23*r22+s33*r23
466 l33=s13*r31+s23*r32+s33*r33
467 s11=r11*l11+r12*l21+r13*l31
468 s22=r21*l12+r22*l22+r23*l32
469 s33=r31*l13+r32*l23+r33*l33
470 s12=r11*l12+r12*l22+r13*l32
471 s23=r21*l13+r22*l23+r23*l33
472 s13=r11*l13+r12*l23+r13*l33
473 wwa(2)=s11
474 wwa(3)=s22
475 wwa(4)=s33
476 wwa(5)=s12
477 wwa(6)=s23
478 wwa(7)=s13
479 ELSEIF (khbe /= 24 .AND. khbe /= 14) THEN
480 IF (khbe /= 15) THEN
482 . x1, x2, x3, x4, x5, x6, x7, x8,
483 . y1, y2, y3, y4, y5, y6, y7, y8,
484 . z1, z2, z3, z4, z5, z6, z7, z8,
485 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
486 ELSE
487
489 . x1, x2, x3, x4, x5, x6, x7, x8,
490 . y1, y2, y3, y4, y5, y6, y7, y8,
491 . z1, z2, z3, z4, z5, z6, z7, z8,
492 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
493 END IF
494
495 IF (kcvt == 2) THEN
496 IF (isorth > 0) THEN
497
498 IF (khbe /= 15) THEN
499 g11=gbuf%GAMA(kk(1)+i)
500 g21=gbuf%GAMA(kk(2)+i)
501 g31=gbuf%GAMA(kk(3)+i)
502 g12=gbuf%GAMA(kk(4)+i)
503 g22=gbuf%GAMA(kk(5)+i)
504 g32=gbuf%GAMA(kk(6)+i)
505 g13=g21*g32-g31*g22
506 g23=g31*g12-g11*g32
507 g33=g11*g22-g21*g12
508 ELSE
509 cs = gbuf%GAMA(kk(1)+i)
510 sn = gbuf%GAMA(kk(2)+i)
511 g11=cs
512 g12=sn
513 g13=zero
514 g21=-sn
515 g22=cs
516 g23=zero
517 g31=zero
518 g32=zero
519 g33=one
520 END IF
521
522 t11=r11*g11+r12*g21+r13*g31
523 t12=r11*g12+r12*g22+r13*g32
524 t13=r11*g13+r12*g23+r13*g33
525 t21=r21*g11+r22*g21+r23*g31
526 t22=r21*g12+r22*g22+r23*g32
527 t23=r21*g13+r22*g23+r23*g33
528 t31=r31*g11+r32*g21+r33*g31
529 t32=r31*g12+r32*g22+r33*g32
530 t33=r31*g13+r32*g23+r33*g33
531 r11=t11
532 r12=t12
533 r13=t13
534 r21=t21
535 r22=t22
536 r23=t23
537 r31=t31
538 r32=t32
539 r33=t33
540 ENDIF
541 ENDIF
542
543 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 ) THEN
544 s11 = s11 * gbuf%FILL(i)
545 s22 = s22 * gbuf%FILL(i)
546 s33 = s33 * gbuf%FILL(i)
547 s12 = s12 * gbuf%FILL(i)
548 s23 = s23 * gbuf%FILL(i)
549 s13 = s13 * gbuf%FILL(i)
550 ENDIF
551
552 wwa(35)=s11
553 wwa(36)=s22
554 wwa(37)=s33
555 wwa(38)=s12
556 wwa(39)=s23
557 wwa(40)=s13
558 l11=s11*r11+s12*r12+s13*r13
559 l12=s11*r21+s12*r22+s13*r23
560 l13=s11*r31+s12*r32+s13*r33
561 l21=s12*r11+s22*r12+s23*r13
562 l22=s12*r21+s22*r22+s23*r23
563 l23=s12*r31+s22*r32+s23*r33
564 l31=s13*r11+s23*r12+s33*r13
565 l32=s13*r21+s23*r22+s33*r23
566 l33=s13*r31+s23*r32+s33*r33
567 s11=r11*l11+r12*l21+r13*l31
568 s22=r21*l12+r22*l22+r23*l32
569 s33=r31*l13+r32*l23+r33*l33
570 s12=r11*l12+r12*l22+r13*l32
571 s23=r21*l13+r22*l23+r23*l33
572 s13=r11*l13+r12*l23+r13*l33
573 wwa(2)=s11
574 wwa(3)=s22
575 wwa(4)=s33
576 wwa(5)=s12
577 wwa(6)=s23
578 wwa(7)=s13
579 ELSE
581 . x1, x2, x3, x4, x5, x6, x7, x8,
582 . y1, y2, y3, y4, y5, y6, y7, y8,
583 . z1, z2, z3, z4, z5, z6, z7, z8,
584 . r12, r13, r11, r22, r23, r21, r32, r33, r31)
585 IF (kcvt == 2) THEN
586 g11=gbuf%GAMA(kk(1)+i)
587 g21=gbuf%GAMA(kk(2)+i)
588 g31=gbuf%GAMA(kk(3)+i)
589 g12=gbuf%GAMA(kk(4)+i)
590 g22=gbuf%GAMA(kk(5)+i)
591 g32=gbuf%GAMA(kk(6)+i)
592 g13=g21*g32-g31*g22
593 g23=g31*g12-g11*g32
594 g33=g11*g22-g21*g12
595
596
597 IF (khbe == 14) THEN
598 l11=s11*g11+s12*g12+s13*g13
599 l12=s11*g21+s12*g22+s13*g23
600 l13=s11*g31+s12*g32+s13*g33
601 l21=s12*g11+s22*g12+s23*g13
602 l22=s12*g21+s22*g22+s23*g23
603 l23=s12*g31+s22*g32+s23*g33
604 l31=s13*g11+s23*g12+s33*g13
605 l32=s13*g21+s23*g22+s33*g23
606 l33=s13*g31+s23*g32+s33*g33
607 s11=g11*l11+g12*l21+g13*l31
608 s22=g21*l12+g22*l22+g23*l32
609 s33=g31*l13+g32*l23+g33*l33
610 s12=g11*l12+g12*l22+g13*l32
611 s23=g21*l13+g22*l23+g23*l33
612 s13=g11*l13+g12*l23+g13*l33
613 ENDIF
614
615 t11=r11*g11+r12*g21+r13*g31
616 t12=r11*g12+r12*g22+r13*g32
617 t13=r11*g13+r12*g23+r13*g33
618 t21=r21*g11+r22*g21+r23*g31
619 t22=r21*g12+r22*g22+r23*g32
620 t23=r21*g13+r22*g23+r23*g33
621 t31=r31*g11+r32*g21+r33*g31
622 t32=r31*g12+r32*g22+r33*g32
623 t33=r31*g13+r32*g23+r33*g33
624 r11=t11
625 r12=t12
626 r13=t13
627 r21=t21
628 r22=t22
629 r23=t23
630 r31=t31
631 r32=t32
632 r33=t33
633 END IF
634
635 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 ) THEN
636 s11 = s11 * gbuf%FILL(i)
637 s22 = s22 * gbuf%FILL(i)
638 s33 = s33 * gbuf%FILL(i)
639 s12 = s12 * gbuf%FILL(i)
640 s23 = s23 * gbuf%FILL(i)
641 s13 = s13 * gbuf%FILL(i)
642 ENDIF
643
644 wwa(35)=s11
645 wwa(36)=s22
646 wwa(37)=s33
647 wwa(38)=s12
648 wwa(39)=s23
649 wwa(40)=s13
650 l11=s11*r11+s12*r12+s13*r13
651 l12=s11*r21+s12*r22+s13*r23
652 l13=s11*r31+s12*r32+s13*r33
653 l21=s12*r11+s22*r12+s23*r13
654 l22=s12*r21+s22*r22+s23*r23
655 l23=s12*r31+s22*r32+s23*r33
656 l31=s13*r11+s23*r12+s33*r13
657 l32=s13*r21+s23*r22+s33*r23
658 l33=s13*r31+s23*r32+s33*r33
659 s11=r11*l11+r12*l21+r13*l31
660 s22=r21*l12+r22*l22+r23*l32
661 s33=r31*l13+r32*l23+r33*l33
662 s12=r11*l12+r12*l22+r13*l32
663 s23=r21*l13+r22*l23+r23*l33
664 s13=r11*l13+r12*l23+r13*l33
665 wwa(2)=s11
666 wwa(3)=s22
667 wwa(4)=s33
668 wwa(5)=s12
669 wwa(6)=s23
670 wwa(7)=s13
671 END IF
672
673 ELSE
674
675
676
677 wwa(2)=s11
678 wwa(3)=s22
679 wwa(4)=s33
680 wwa(5)=s12
681 wwa(6)=s23
682 wwa(7)=s13
683
684 wwa(35)=s11
685 wwa(36)=s22
686 wwa(37)=s33
687 wwa(38)=s12
688 wwa(39)=s23
689 wwa(40)=s13
690
691 ENDIF
692
693
694
695
696 IF (jthe /= 0 .and. jlag > 0) THEN
697 wwa(13) = gbuf%TEMP(i)
698 ELSE
699 wwa(13) = zero
700 DO il=1,nlay
701 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0) THEN
702 DO it=1,elbuf_tab(ng)%BUFLY(il)%NPTT
703 DO is=1,npts
704 DO ir=1,nptr
705 wwa(13) = wwa(13)+elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%TEMP(i)/nptg
706 ENDDO
707 ENDDO
708 ENDDO
709 ENDIF
710 ENDDO
711 ENDIF
712
713 wwa(14)=gbuf%EPSD(i)
714 IF (mte == 2) THEN
715 wwa(12) = gbuf%PLA(i)
716
717 ELSEIF (mte == 3) THEN
718 wwa(12)=gbuf%PLA(i)
719
720 ELSEIF (mte == 4) THEN
721 wwa(12)=gbuf%PLA(i)
722
723 ELSEIF (mte == 5 .OR. mte == 41 .OR. mte == 97) THEN
724
725 wwa(31)=gbuf%BFRAC(i)
726 ELSEIF (mte == 6) THEN
727
728 wwa(26)=lbuf%RK(i)
729 wwa(27)=lbuf%RE(i)
730 ELSEIF (mte == 7.OR.mte == 8.OR.mte == 9) THEN
731 wwa(12)=zero
732 wwa(13)=zero
733 ELSEIF (mte == 10) THEN
734 wwa(12)=gbuf%PLA(i)
735 wwa(30)=gbuf%EPSQ(i) !/th(vpla)
736 ELSEIF (mte == 11) THEN
737
738 wwa(26)=lbuf%RK(i)
739 wwa(27)=lbuf%RE(i)
740 ELSEIF (mte == 14) THEN
741 wwa(32)=lbuf%PLA(i)
742 wwa(33)=lbuf%SIGF(i)
743 wwa(28)=lbuf%EPSF(i)
744 wwa(15)=lbuf%DAM(kk(1)+i)
745 wwa(16)=lbuf%DAM(kk(2)+i)
746 wwa(17)=lbuf%DAM(kk(3)+i)
747 wwa(18)=lbuf%DAM(kk(4)+i)
748 wwa(34)=lbuf%DAM(kk(5)+i)
749 ELSEIF (mte == 16) THEN
750 wwa(12)=lbuf%PLA(i)
751
752 ELSEIF (mte == 17) THEN
753
754 wwa(26)=lbuf%RK(i)
755 wwa(27)=lbuf%RE(i)
756 ELSEIF (mte == 18) THEN
757
758 ELSEIF (mte == 20) THEN
759 wwa(12)=zero
760 wwa(13)=zero
761 ELSEIF (mte == 21) THEN
762 wwa(12)=gbuf%PLA(i)
763 wwa(30)=gbuf%EPSQ(i)
764 ELSEIF (mte == 22.OR.mte == 23) THEN
765 wwa(12)=lbuf%PLA(i)
766 ELSEIF (mte == 24) THEN
767 wwa(15)=lbuf%DAM(kk(1)+i)
768 wwa(16)=lbuf%DAM(kk(2)+i)
769 wwa(17)=lbuf%DAM(kk(3)+i)
770 wwa(19)=lbuf%DAM(kk(1)+i)+lbuf%DAM(kk(2)+i)+lbuf%DAM(kk(3)+i)
771 wwa(20)=lbuf%SIGA(kk(1)+i)
772 wwa(21)=lbuf%SIGA(kk(2)+i)
773 wwa(22)=lbuf%SIGA(kk(3)+i)
774 wwa(23)=lbuf%CRAK(kk(1)+i)+lbuf%CRAK(kk(2)+i)+lbuf%CRAK(kk(3)+i)
775 wwa(24)=lbuf%ROB(i)
776 wwa(25)=lbuf%VK(i)
777 wwa(239552)=lbuf%RK(i)
778 wwa(12)=lbuf%PLA(i)
779 wwa(30)=gbuf%PLA(i)
780 ELSEIF (mte == 25) THEN
781 wwa(32)=lbuf%PLA(i)
782 ELSEIF (mte == 26) THEN
783 wwa(12)=lbuf%PLA(i)
784
785 wwa(14)=lbuf%Z(i)
786 ELSEIF (mte == 32.OR.mte == 43) THEN
787 wwa(12)=zero
788 wwa(13)=zero
789 ELSEIF (mte == 46.OR.mte == 47) THEN
790 wwa(12)=mbuf%VAR(i)
791 ELSEIF (mte == 49) THEN
792 wwa(12)=lbuf%PLA(i)
793
794 wwa(14)=lbuf%EPSD(i)
795 ELSEIF (mte == 28) THEN
796 ELSEIF (mte == 33) THEN
797 ELSEIF (mte == 51) THEN
798 IF(gbuf%G_PLA>0) wwa(12)=gbuf%PLA(i)
799 wwa(13)=gbuf%TEMP(i)
800 IF(gbuf%G_EPSD>0) wwa(14)=gbuf%EPSD(i)
801 IF(gbuf%G_BFRAC>0)wwa(31)=gbuf%BFRAC(i)
802 IF(gbuf%G_EPSQ>0) wwa(30)=gbuf%EPSQ(i)
803 ELSEIF (mte == 59) THEN
804
805 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
806 DO j=1,nptr
807 DO k=1,nfail
808 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(j,1,1)%FLOC(k)
809 nvarf = fbuf%NVAR
810 DO l=1,nvarf
811 var = fbuf%VAR((l-1)*nel+i)
812 wwa(136+l) =
max(wwa(136+l), var)
813 ENDDO
814 ENDDO
815 ENDDO
816 var =
max(wwa(15),wwa(16))
817 var =
max(wwa(17),var)
818 var =
max(wwa(18),var)
819 wwa(19) = var
820
821 ELSEIF (mte == 83) THEN
822 wwa(12)=gbuf%PLA(i)
823 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
824 DO j=1,nptr
825 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(j,1,1)
826 DO l=1,nuvar
827 var = mbuf%VAR((l-1)*nel+i)
828 wwa(136+l) =
max(wwa(136+l), var)
829 ENDDO
830 ENDDO
831 ELSEIF (mte == 116) THEN
832 wwa(12) = gbuf%PLA(i)
833 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
834 DO j=1,nptr
835 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(j,1,1)
836 DO l=1,nuvar
837 var = mbuf%VAR((l-1)*nel+i)
838 wwa(136+l) =
max(wwa(136+l), var)
839 ENDDO
840 ENDDO
841 ELSEIF (mte == 67) THEN
842
843 wwa(12)=zero
844
845 ELSEIF (mte == 103) THEN
846
847 wwa(12)=lbuf%PLA(i)
848
849 wwa(14)=lbuf%EPSD(i)
850 ELSEIF (mte > 28) THEN
851 IF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0)THEN
852 wwa(12)=lbuf%PLA(i)
853 ELSE
854 wwa(12)=zero
855 ENDIF
856
857
858
859
860
861
862
863
864
865
866 nuvarth =
min(60,nuvar)
867 DO j=1,nuvarth
868 wwa(136+j)=mbuf%VAR((j-1)*nel+i)
869 ENDDO
870 ENDIF
871
872
873 IF (mte==151) THEN
874
875 IF(ALLOCATED(multi_fvm%BFRAC))THEN
876 bfrac = zero
877 DO ir=1,multi_fvm%NBMAT
878 bfrac =
max(bfrac, multi_fvm%BFRAC(ir,n))
879 ENDDO
880 wwa(31)=bfrac
881 ENDIF
882
883 wwa(239547)= multi_fvm%VEL(1, n)
884 wwa(239548)= multi_fvm%VEL(2, n)
885 wwa(239549)= multi_fvm%VEL(3, n)
886
887 wwa(239550)= multi_fvm%SOUND_SPEED(n)
888
889 wwa(239551)= sqrt(multi_fvm%VEL(1, n)*multi_fvm%VEL(1, n)+
890 . multi_fvm%VEL(2, n)*multi_fvm%VEL(2, n)+
891 . multi_fvm%VEL(3, n)*multi_fvm%VEL(3, n)) /
892 . multi_fvm%SOUND_SPEED(n)
893
895
896 ssp = lbuf%SSP(i)
897 wwa(239550)= ssp
898 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)THEN
899 vel(1) = gbuf%MOM(i) / gbuf%RHO(i)
900 vel(2) = gbuf%MOM(nel + i) / gbuf%RHO(i)
901 vel(3) = gbuf%MOM(2*nel+ i) / gbuf%RHO(i)
902 wwa(239547)= vel(1)
903 wwa(239548)= vel(2)
904 wwa(239549)= vel(3)
905 IF(ssp > zero)THEN
906 wwa(239551)= sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/ssp
907 ENDIF
908 ENDIF
909
910 ELSE
911
912 ENDIF
913
914
915 IF (gbuf%G_PLANL > 0) THEN
916 nptg = nptr * npts * nptt
917 wwa(239553) = zero
918 DO ir=1,nptr
919 DO is=1,npts
920 DO it=1,nptt
921 wwa(239553) = wwa(239553) + elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)%PLANL(i)/nptg
922 ENDDO
923 ENDDO
924 ENDDO
925 ENDIF
926 IF (gbuf%G_EPSDNL > 0) THEN
927 nptg = nptr * npts * nptt
928 wwa(239554) = zero
929 DO ir=1,nptr
930 DO is=1,npts
931 DO it=1,nptt
932 wwa(239554) = wwa(239554) + elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)%EPSDNL(i)/nptg
933 ENDDO
934 ENDDO
935 ENDDO
936 ENDIF
937
938
939 rho0 = pm(01,ixs(1,nft+i))
940 IF(rho0 > zero)THEN
941 wwa(239555) = elbuf_tab(ng)%GBUF%RHO(i) / rho0 - one
942 ELSE
943 wwa(239555) = zero
944 ENDIF
945
946
947
948
949
950
951
952
953
954
955
956
957
958 IF (kcvt > 0) THEN
959
960
961
962 IF (isolnod == 4) THEN
963
964 ELSEIF (isolnod == 10) THEN
965
966 ELSEIF (isolnod == 8.AND. igtyp == 43) THEN
967
968
969
970 DO ipt=1,npt
971 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
972 DO j=1,3
973 strain(j) = strain(j) + lbuf%EPE(kk(j)+i)/npt
974 ENDDO
975 ENDDO
976
977 wwa(239030 + 3) = strain(3)
978 wwa(239030 + 2) = strain(2)
979 wwa(239030 + 1) = strain(1)
980
981 gama(1)=one
982 gama(2)=zero
983 gama(3)=zero
984 gama(4)=zero
985 gama(5)=one
986 gama(6)=zero
987
988 CALL srota6(x,ixs(1,n),kcvt,strain,gama,khbe,igtyp,isorth)
989
990 DO j=1,3
991 wwa(1618 + j) = strain(j)
992 ENDDO
993
994 ELSEIF (isolnod==8 .AND. khbe/=14 .AND. khbe/=15 .AND. khbe/=17) THEN
995
996
997
998
999
1000 IF (npt == 8)THEN
1001 jj = 6*(i-1)
1002 IF (elbuf_tab(ng)%BUFLY(1)%L_SIGL > 0) THEN
1003 DO ipt=1,npt
1004 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014 wwa( 88+ipt) = lbuf%SIGL(kk(1)+i)
1015 wwa( 96+ipt) = lbuf%SIGL(kk(2)+i)
1016 wwa(104+ipt) = lbuf%SIGL(kk(3)+i)
1017 wwa(112+ipt) = lbuf%SIGL(kk(4)+i)
1018 wwa(120+ipt) = lbuf%SIGL(kk(5)+i)
1019 wwa(128+ipt) = lbuf%SIGL(kk(6)+i)
1020 ENDDO
1021 ELSE IF(khbe == 12)THEN
1022 DO ipt=1,npt
1023 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,ipt)
1024 wwa( 88+ipt) = lbuf%SIG(kk(1)+i)
1025 wwa( 96+ipt) = lbuf%SIG(kk(2)+i)
1026 wwa(104+ipt) = lbuf%SIG(kk(3)+i)
1027 wwa(112+ipt) = lbuf%SIG(kk(4)+i)
1028 wwa(120+ipt) = lbuf%SIG(kk(5)+i)
1029 wwa(128+ipt) = lbuf%SIG(kk(6)+i)
1030 ENDDO
1031 IF(ivisc > 0 ) THEN
1032 DO ipt=1,npt
1033 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,ipt)
1034 wwa( 88+ipt) =wwa( 88+ipt) + lbuf%VISC(kk(1)+i)
1035 wwa( 96+ipt) =wwa( 96+ipt) + lbuf%VISC(kk(2)+i)
1036 wwa(104+ipt) =wwa(104+ipt) + lbuf%VISC(kk(3)+i)
1037 wwa(112+ipt) =wwa(112+ipt) + lbuf%VISC(kk(4)+i)
1038 wwa(120+ipt) =wwa(120+ipt) + lbuf%VISC(kk(5)+i)
1039 wwa(128+ipt) =wwa(128+ipt) + lbuf%VISC(kk(6)+i)
1040 ENDDO
1041 ENDIF
1042 ELSE
1043 DO ipt=1,npt
1044 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
1045 wwa( 88+ipt) = lbuf%SIG(kk(1)+i)
1046 wwa( 96+ipt) = lbuf%SIG(kk(2)+i)
1047 wwa(104+ipt) = lbuf%SIG(kk(3)+i)
1048 wwa(112+ipt) = lbuf%SIG(kk(4)+i)
1049 wwa(120+ipt) = lbuf%SIG(kk(5)+i)
1050 wwa(128+ipt) = lbuf%SIG(kk(6)+i)
1051 ENDDO
1052 IF(ivisc > 0 ) THEN
1053 DO ipt=1,npt
1054 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
1055 wwa( 88+ipt) =wwa( 88+ipt) + lbuf%VISC(kk(1)+i)
1056 wwa( 96+ipt) =wwa( 96+ipt) + lbuf%VISC(kk(2)+i)
1057 wwa(104+ipt) =wwa(104+ipt) + lbuf%VISC(kk(3)+i)
1058 wwa(112+ipt) =wwa(112+ipt) + lbuf%VISC(kk(4)+i)
1059 wwa(120+ipt) =wwa(120+ipt) + lbuf%VISC(kk(5)+i)
1060 wwa(128+ipt) =wwa(128+ipt) + lbuf%VISC(kk(6)+i)
1061 ENDDO
1062 ENDIF
1063 ENDIF
1064 IF(khbe == 12)THEN
1065 DO ipt=1,npt
1066 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,ipt)
1067 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1068 strain(1) = strain(1) + lbuf%STRA(kk(1)+i)*one_over_8
1069 strain(2) = strain(2) + lbuf%STRA(kk(2)+i)*one_over_8
1070 strain(3) = strain(3) + lbuf%STRA(kk(3)+i)*one_over_8
1071 strain(4) = strain(4) + lbuf%STRA(kk(4)+i)*one_over_8
1072 strain(5) = strain(5) + lbuf%STRA(kk(5)+i)*one_over_8
1073 strain(6) = strain(6) + lbuf%STRA(kk(6)+i)*one_over_8
1074 ENDIF
1075 ENDDO
1076 ELSE
1077 DO ipt=1,npt
1078 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
1079 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1080 strain(1) = strain(1) + lbuf%STRA(kk(1)+i)*one_over_8
1081 strain(2) = strain(2) + lbuf%STRA(kk(2)+i)*one_over_8
1082 strain(3) = strain(3) + lbuf%STRA(kk(3)+i)*one_over_8
1083 strain(4) = strain(4) + lbuf%STRA(kk(4)+i)*one_over_8
1084 strain(5) = strain(5) + lbuf%STRA(kk(5)+i)*one_over_8
1085 strain(6) = strain(6) + lbuf%STRA(kk(6)+i)*one_over_8
1086 ENDIF
1087 ENDDO
1088 ENDIF
1089
1090 DO j= 1,6
1091 wwa(239030 + j) = strain(j)
1092 ENDDO
1093
1094 IF(kcvt==2)THEN
1095 gama(1)=gbuf%GAMA(kk(1) + i)
1096 gama(2)=gbuf%GAMA(kk(2) + i)
1097 gama(3)=gbuf%GAMA(kk(3) + i)
1098 gama(4)=gbuf%GAMA(kk(4) + i)
1099 gama(5)=gbuf%GAMA(kk(5) + i)
1100 gama(6)=gbuf%GAMA(kk(6) + i)
1101 ELSE
1102 gama(1)=one
1103 gama(2)=zero
1104 gama(3)=zero
1105 gama(4)=zero
1106 gama(5)=one
1107 gama(6)=zero
1108 END IF
1109
1110 CALL srota6(x,ixs(1,n),kcvt,strain,gama,khbe,igtyp,isorth)
1111
1112 DO j=1,3
1113 wwa(1618 + j) = strain(j)
1114 ENDDO
1115
1116 wwa(1618 + 4) = strain(4)
1117 wwa(1618 + 5) = strain(6)
1118 wwa(1618 + 6) = strain(5)
1119
1120
1121 ELSEIF (npt == 1) THEN
1122
1123 DO j=1,6
1124 strain(j) = zero
1125 ENDDO
1126 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
1127 IF (mte == 12 .OR. mte == 14) THEN
1128 DO j= 1,3
1129 wwa(239030 + j) = lbuf%EPE(kk(j)+i)
1130 strain(j) = lbuf%EPE(kk(j)+i)
1131 ENDDO
1132 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1133 DO j= 1,3
1134 wwa(239030 + j) = lbuf%STRA(kk(j)+i)
1135 strain(j) = lbuf%STRA(kk(j)+i)
1136 ENDDO
1137 DO j= 4,6
1138 wwa(239030 + j) = lbuf%STRA(kk(j)+i)*half
1139 strain(j) = lbuf%STRA(kk(j)+i)*half
1140 ENDDO
1141
1142 ENDIF
1143
1144
1145 DO j= 1,6
1146 wwa(239030 + j) = strain(j)
1147 ENDDO
1148
1149 IF(kcvt==2)THEN
1150 gama(1)=gbuf%GAMA(kk(1) + i)
1151 gama(2)=gbuf%GAMA(kk(2) + i)
1152 gama(3)=gbuf%GAMA(kk(3) + i)
1153 gama(4)=gbuf%GAMA(kk(4) + i)
1154 gama(5)=gbuf%GAMA(kk(5) + i)
1155 gama(6)=gbuf%GAMA(kk(6) + i)
1156 ELSE
1157 gama(1)=one
1158 gama(2)=zero
1159 gama(3)=zero
1160 gama(4)=zero
1161 gama(5)=one
1162 gama(6)=zero
1163 END IF
1164
1165 CALL srota6(x,ixs(1,n),kcvt,strain,gama,khbe,igtyp,isorth)
1166
1167 DO j=1,3
1168 wwa(1618 + j) = strain(j)
1169 ENDDO
1170
1171 wwa(1618 + 4) = strain(4)
1172 wwa(1618 + 5) = strain(6)
1173 wwa(1618 + 6) = strain(5)
1174
1175 ENDIF
1176
1177
1178
1179
1180
1181 ELSEIF (tshell == 1) THEN
1182
1183
1184
1185
1186 pid=ixs(10,1 + nft)
1187 nptg = nptr * npts * nlay
1188 jj = 6*(i-1)
1189 DO ir=1,nptr
1190 DO is=1,npts
1191 DO it=1,nlay
1192 IF (mte == 12 .OR. mte == 14)THEN
1193 DO j=1,3
1194 evar_tmp(j) = lbuf%EPE(kk(j)+i)
1195 ENDDO
1196 evar_tmp(3:6) = zero
1197 ENDIF
1198
1199 ipt = ir + ( (is-1) + (it-1)*npts )*nptr
1200
1201 IF (ipt <= nptg .AND. ir <= nptr .AND. is <= npts .AND. it <= nlay) THEN
1202 IF (elbuf_tab(ng)%BUFLY(it)%L_STRA > 0) THEN
1203 lbuf => elbuf_tab(ng)%BUFLY(it)%LBUF(ir,is,1)
1204 evar_tmp(1) = lbuf%STRA(kk(1)+i)
1205 evar_tmp(2) = lbuf%STRA(kk(2)+i)
1206 evar_tmp(3) = lbuf%STRA(kk(3)+i)
1207 evar_tmp(4) = lbuf%STRA(kk(4)+i)*half
1208 evar_tmp(5) = lbuf%STRA(kk(5)+i)*half
1209 evar_tmp(6) = lbuf%STRA(kk(6)+i)*half
1210 ENDIF
1211
1212 DO j = 1, 6
1213 strain(j) = strain(j) + evar_tmp(j)/nptg
1214 ENDDO
1215
1216
1217 icsig=iparg(17,ng)
1218 IF (khbe == 14.AND.icsig > 0) THEN
1219 SELECT CASE (icsig)
1220 CASE (1)
1221 IF(kcvt==2)THEN
1222 gama(1)= zero
1223 gama(2)= lbuf%GAMA(kk(1)+i)
1224 gama(3)= lbuf%GAMA(kk(2)+i)
1225 gama(4)= zero
1226 gama(5)=-gama(2)
1227 gama(6)= gama(1)
1228 ELSE
1229 gama(1)=one
1230 gama(2)=zero
1231 gama(3)=zero
1232 gama(4)=zero
1233 gama(5)=one
1234 gama(6)=zero
1235 END IF
1236 CASE (10)
1237 IF(kcvt==2)THEN
1238 gama(1)= lbuf%GAMA(kk(1)+i)
1239 gama(2)= lbuf%GAMA(kk(2)+i)
1240 gama(3)= zero
1241 gama(4)=-gama(2)
1242 gama(5)= gama(1)
1243 gama(6)= zero
1244 ELSE
1245 gama(1)=one
1246 gama(2)=zero
1247 gama(3)=zero
1248 gama(4)=zero
1249 gama(5)=one
1250 gama(6)=zero
1251 END IF
1252 CASE (100)
1253 IF(kcvt==2)THEN
1254 gama(1)= lbuf%GAMA(kk(2)+i)
1255 gama(2)= zero
1256 gama(3)= lbuf%GAMA(kk(1)+i)
1257 gama(4)= gama(3)
1258 gama(5)= zero
1259 gama(6)=-gama(1)
1260 ELSE
1261 gama(1)=one
1262 gama(2)=zero
1263 gama(3)=zero
1264 gama(4)=zero
1265 gama(5)=one
1266 gama(6)=zero
1267 END IF
1268 END SELECT
1269 ELSE
1270
1271 IF(kcvt==2)THEN
1272 gama(1)=gbuf%GAMA(kk(1) + i)
1273 gama(2)=gbuf%GAMA(kk(2) + i)
1274 gama(3)=gbuf%GAMA(kk(3) + i)
1275 gama(4)=gbuf%GAMA(kk(4) + i)
1276 gama(5)=gbuf%GAMA(kk(5) + i)
1277 gama(6)=gbuf%GAMA(kk(6) + i)
1278 ELSE
1279 gama(1)=one
1280 gama(2)=zero
1281 gama(3)=zero
1282 gama(4)=zero
1283 gama(5)=one
1284 gama(6)=zero
1285 END IF
1286
1287 ENDIF
1288
1289 CALL srota6(x,ixs(1,n),kcvt,evar_tmp,gama,khbe,igtyp,isorth)
1290
1291 DO j = 1, 6
1292 evar(j) = evar(j) + evar_tmp(j)/nptg
1293 ENDDO
1294
1295 IF(igtyp == 22) THEN
1296
1297 mbuf => elbuf_tab(ng)%BUFLY(it)%MAT(ir,is,1)
1298 cpt=(it-1)*9*9*6+((ir-1)*9+is-1)*6
1299
1300 wwa(98846+cpt+1) = lbuf%SIG(kk(1)+i)
1301
1302 wwa(98846+cpt+2) = lbuf%SIG(kk(4)+i)
1303
1304 wwa(98846+cpt+3) = lbuf%SIG(kk(6)+i)
1305
1306 wwa(98846+cpt+4) = lbuf%SIG(kk(2)+i)
1307
1308 wwa(98846+cpt+5) = lbuf%SIG(kk(5)+i)
1309
1310 wwa(98846+cpt+6) = lbuf%SIG(kk(3)+i)
1311 IF(ivisc > 0) THEN
1312 wwa(98846+cpt+1)=wwa(98846+cpt+1) + lbuf%VISC(kk(1)+i)
1313 wwa(98846+cpt+2)=wwa(98846+cpt+2) + lbuf%VISC(kk(4)+i)
1314 wwa(98846+cpt+3)=wwa(98846+cpt+3) + lbuf%VISC(kk(6)+i)
1315 wwa(98846+cpt+4)=wwa(98846+cpt+4) + lbuf%VISC(kk(2)+i)
1316 wwa(98846+cpt+5)=wwa(98846+cpt+5) + lbuf%VISC(kk(5)+i)
1317 wwa(98846+cpt+6)=wwa(98846+cpt+6) + lbuf%VISC(kk(3)+i)
1318 ENDIF
1319 IF (mte == 12 .OR. mte == 14) THEN
1320 wwa(1646+cpt+1) = lbuf%EPE(kk(1)+i)
1321 wwa(1646+cpt+2) = lbuf%EPE(kk(2)+i)
1322 wwa(1646+cpt+3) = lbuf%EPE(kk(3)+i)
1323 ELSEIF (elbuf_tab(ng)%BUFLY(it)%L_STRA > 0) THEN
1324 wwa(1646+cpt+1) = lbuf%STRA(kk(1)+i)
1325 wwa(1646+cpt+2) = lbuf%STRA(kk(2)+i)
1326 wwa(1646+cpt+3) = lbuf%STRA(kk(3)+i)
1327 wwa(1646+cpt+4) = lbuf%STRA(kk(4)+i)*half
1328 wwa(1646+cpt+5) = lbuf%STRA(kk(5)+i)*half
1329 wwa(1646+cpt+6) = lbuf%STRA(kk(6)+i)*half
1330 ELSE
1331 wwa(1646+cpt+1) = zero
1332 wwa(1646+cpt+2) = zero
1333 wwa(1646+cpt+3) = zero
1334 wwa(1646+cpt+4) = zero
1335 wwa(1646+cpt+5) = zero
1336 wwa(1646+cpt+6) = zero
1337 ENDIF
1338
1339 ELSE
1340
1341
1342 mbuf => elbuf_tab(ng)%BUFLY(it)%MAT(ir,is,1)
1343 ipwwa = (ir-1)*3*9*7 + (it-1)*3*7 + (is-1)*7
1344 DO j=1,6
1345 sigg(j) = lbuf%SIG(kk(j)+i)
1346 ENDDO
1347 IF(ivisc > 0) THEN
1348 DO j=1,6
1349 sigg(j) = sigg(j) + lbuf%VISC(kk(j)+i)
1350 ENDDO
1351 ENDIF
1352
1353
1354 IF (mte >= 28) THEN
1355 IF (nuvar > 0) THEN
1356 plag = mbuf%VAR(i)
1357 ENDIF
1358 ELSE
1359 IF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0) THEN
1360 plag = lbuf%PLA(i)
1361 ENDIF
1362 ENDIF
1363
1364 CALL srota6(x,ixs(1,n),kcvt,sigg,gama,khbe,igtyp,isorth)
1365
1366
1367 DO j=1,6
1368 wwa(196+ipwwa +j) = sigg(j)
1369 ENDDO
1370
1371 wwa(196+ipwwa +7) = plag
1372
1373 DO j=1,6
1374 wwa(239060+ipwwa +j) = evar_tmp(j)
1375 ENDDO
1376
1377 ENDIF
1378 ELSE
1379 wwa(196+cpt +1) = zero
1380 wwa(196+cpt +2) = zero
1381 wwa(196+cpt +3) = zero
1382 wwa(196+cpt +4) = zero
1383 wwa(196+cpt +5) = zero
1384 wwa(196+cpt +6) = zero
1385
1386 wwa(1646+cpt+1) = zero
1387 wwa(1646+cpt+2) = zero
1388 wwa(1646+cpt+3) = zero
1389 wwa(1646+cpt+4) = zero
1390 wwa(1646+cpt+5) = zero
1391 wwa(1646+cpt+6) = zero
1392
1393 wwa(120338+cpt+1)= zero
1394 wwa(120338+cpt+2)= zero
1395 wwa(120338+cpt+3)= zero
1396 wwa(120338+cpt+4)= zero
1397 wwa(120338+cpt+5)= zero
1398 wwa(120338+cpt+6)= zero
1399 ENDIF
1400
1401 ENDDO
1402 ENDDO
1403 ENDDO
1404
1405 DO j= 1,6
1406 wwa(239036+j) = strain(j)
1407 ENDDO
1408
1409
1410 DO j= 1,3
1411 wwa(1618+j) = evar(j)
1412 ENDDO
1413
1414 wwa(1618 + 4) = evar(4)
1415 wwa(1618 + 5) = evar(6)
1416 wwa(1618 + 6) = evar(5)
1417
1418
1419 ELSEIF (isolnod == 8.AND.(khbe == 14.OR.khbe == 17))THEN
1420
1421
1422
1423
1424 jj = 6*(i-1)
1425 nptg=nptt*npts*nptr
1426 DO j=1, 100
1427 user(j) = zero
1428 ENDDO
1429
1430
1431 DO is=1,npts
1432 ispau= 1
1433 DO it=1,nptt
1434 DO ir=1,nptr
1435
1436 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
1437 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,it)
1438
1439
1440 ipt = ir
1441
1442 ipwwa = (ir-1)*3*9*7 + (it-1)*3*7 + (is-1)*7
1443 iuwwa = (ir-1)*3*9*9 + (it-1)*3*9 + (is-1)*9
1444
1445 DO itens=1,6
1446
1447 sigp(itens,ispau,is)=lbuf%SIG(kk(itens)+i)
1448 sigg(itens) = lbuf%SIG(kk(itens)+i)
1449 ENDDO
1450
1451 IF(ivisc > 0) then
1452 DO itens=1,6
1453 sigp(itens,ispau,is)=sigp(itens,ispau,is) + lbuf%VISC(kk(itens)+i)
1454 sigg(itens) = sigg(itens) + lbuf%VISC(kk(itens)+i)
1455 ENDDO
1456 ENDIF
1457
1458
1459 IF (mte >= 28) THEN
1460 IF (nuvar > 0) THEN
1461 sigp(7,ispau,is) = mbuf%VAR(i)
1462 plag = mbuf%VAR(i)
1463 ENDIF
1464
1465
1466 nuvarth =
min(9,nuvar)
1467 DO j = 1,nuvarth
1468 wwa(889+j+iuwwa) = mbuf%VAR((j-1)*nel+i)
1469 ENDDO
1470
1471 nuvarth =
min(60,nuvar)
1472 DO j=1, nuvarth
1473 user(j) = user(j) + mbuf%VAR(i + (j-1)*nel )/npt
1474 wwa(889 + j + iuwwa) = mbuf%VAR(i + (j-1)*nel )
1475 ENDDO
1476
1477 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1478 evar_tmp(1) = lbuf%STRA(kk(1)+i)
1479 evar_tmp(2) = lbuf%STRA(kk(2)+i)
1480 evar_tmp(3) = lbuf%STRA(kk(3)+i)
1481 evar_tmp(4) = lbuf%STRA(kk(4)+i)*half
1482 evar_tmp(5) = lbuf%STRA(kk(5)+i)*half
1483 evar_tmp(6) = lbuf%STRA(kk(6)+i)*half
1484 ENDIF
1485 ELSE
1486 IF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0) THEN
1487 sigp(7,ispau,is) = lbuf%PLA(i)
1488 plag= lbuf%PLA(i)
1489 ENDIF
1490
1491 IF (mte == 12 .OR. mte == 14)THEN
1492 DO j=1,3
1493 evar_tmp(j) = lbuf%EPE(kk(j)+i)
1494 ENDDO
1495 evar_tmp(3:6) = zero
1496 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1497 evar_tmp(1) = lbuf%STRA(kk(1)+i)
1498 evar_tmp(2) = lbuf%STRA(kk(2)+i)
1499 evar_tmp(3) = lbuf%STRA(kk(3)+i)
1500 evar_tmp(4) = lbuf%STRA(kk(4)+i)*half
1501 evar_tmp(5) = lbuf%STRA(kk(5)+i)*half
1502 evar_tmp(6) = lbuf%STRA(kk(6)+i)*half
1503 ENDIF
1504 ENDIF
1505 ispau=ispau+1
1506
1507 DO j = 1, 6
1508 strain(j) = strain(j) + evar_tmp(j)/nptg
1509 ENDDO
1510
1511
1512 icsig=iparg(17,ng)
1513 IF (khbe == 14.AND.icsig > 0) THEN
1514 SELECT CASE (icsig)
1515 CASE (1)
1516 IF(kcvt==2)THEN
1517 gama(1)= zero
1518 gama(2)= lbuf%GAMA(kk(1)+i)
1519 gama(3)= lbuf%GAMA(kk(2)+i)
1520 gama(4)= zero
1521 gama(5)=-gama(2)
1522 gama(6)= gama(1)
1523 ELSE
1524 gama(1)=one
1525 gama(2)=zero
1526 gama(3)=zero
1527 gama(4)=zero
1528 gama(5)=one
1529 gama(6)=zero
1530 END IF
1531 CASE (10)
1532 IF(kcvt==2)THEN
1533 gama(1)= lbuf%GAMA(kk(1)+i)
1534 gama(2)= lbuf%GAMA(kk(2)+i)
1535 gama(3)= zero
1536 gama(4)=-gama(2)
1537 gama(5)= gama(1)
1538 gama(6)= zero
1539 ELSE
1540 gama(1)=one
1541 gama(2)=zero
1542 gama(3)=zero
1543 gama(4)=zero
1544 gama(5)=one
1545 gama(6)=zero
1546 END IF
1547 CASE (100)
1548 IF(kcvt==2)THEN
1549 gama(1)= lbuf%GAMA(kk(2)+i)
1550 gama(2)= zero
1551 gama(3)= lbuf%GAMA(kk(1)+i)
1552 gama(4)= gama(3)
1553 gama(5)= zero
1554 gama(6)=-gama(1)
1555 ELSE
1556 gama(1)=one
1557 gama(2)=zero
1558 gama(3)=zero
1559 gama(4)=zero
1560 gama(5)=one
1561 gama(6)=zero
1562 END IF
1563 END SELECT
1564
1565 ELSE
1566
1567 IF(kcvt==2)THEN
1568 gama(1)=gbuf%GAMA(kk(1) + i)
1569 gama(2)=gbuf%GAMA(kk(2) + i)
1570 gama(3)=gbuf%GAMA(kk(3) + i)
1571 gama(4)=gbuf%GAMA(kk(4) + i)
1572 gama(5)=gbuf%GAMA(kk(5) + i)
1573 gama(6)=gbuf%GAMA(kk(6) + i)
1574 ELSE
1575 gama(1)=one
1576 gama(2)=zero
1577 gama(3)=zero
1578 gama(4)=zero
1579 gama(5)=one
1580 gama(6)=zero
1581 END IF
1582
1583
1584 ENDIF
1585
1586 CALL srota6(x,ixs(1,n),kcvt,sigg ,gama,khbe,igtyp,isorth)
1587 CALL srota6(x,ixs(1,n),kcvt,evar_tmp,gama,khbe,igtyp,isorth)
1588
1589
1590 DO j=1,6
1591 wwa(196+ipwwa+j) = sigg(j)
1592 ENDDO
1593
1594 wwa(196+ipwwa +7) = plag
1595
1596 DO j=1,6
1597 wwa(239060+ipwwa+j) = evar_tmp(j)
1598 ENDDO
1599
1600 DO j = 1, 6
1601 evar(j) = evar(j) + evar_tmp(j)/nptg
1602 ENDDO
1603
1604 ENDDO
1605 ENDDO
1606 ENDDO
1607
1608 IF (mte >= 28)THEN
1609
1610 nuvarth =
min(60,nuvar)
1611 DO j=1, nuvarth
1612 wwa(136 + j) = user(j)
1613 ENDDO
1614 ENDIF
1615
1616
1617
1618
1619 DO j = 1, 6
1620 wwa(239030 + j) = strain(j)
1621 ENDDO
1622
1623 DO j = 1, 3
1624 wwa(1618 + j) = evar(j)
1625 ENDDO
1626
1627 wwa(1618 + 4) = evar(4)
1628 wwa(1618 + 5) = evar(6)
1629 wwa(1618 + 6) = evar(5)
1630
1631 ENDIF
1632
1633 ELSE
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643 IF (isolnod == 4) THEN
1644
1645
1646
1647 IF(isrot == 1 )THEN
1648 jj = 6*(i-1)
1649 DO ipt=1,npt
1650 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
1651 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(ipt,1,1)
1652 wwa(40+ipt)=lbuf%SIG(kk(1)+i)
1653 wwa(48+ipt)=lbuf%SIG(kk(2)+i)
1654 wwa(56+ipt)=lbuf%SIG(kk(3)+i)
1655 wwa(64+ipt)=lbuf%SIG(kk(4)+i)
1656 wwa(72+ipt)=lbuf%SIG(kk(5)+i)
1657 wwa(80+ipt)=lbuf%SIG(kk(6)+i)
1658 IF(ivisc > 0 ) THEN
1659 wwa(40+ipt)=wwa(40+ipt) + lbuf%VISC(kk(1)+i)
1660 wwa(48+ipt)=wwa(48+ipt) + lbuf%VISC(kk(2)+i)
1661 wwa(56+ipt)=wwa(56+ipt) + lbuf%VISC(kk(3)+i)
1662 wwa(64+ipt)=wwa(64+ipt) + lbuf%VISC(kk(4)+i)
1663 wwa(72+ipt)=wwa(72+ipt) + lbuf%VISC(kk(5)+i)
1664 wwa(80+ipt)=wwa(80+ipt) + lbuf%VISC(kk(6)+i)
1665 ENDIF
1666
1667 IF(mte == 12 .OR. mte == 14) THEN
1668 DO j = 1, 3
1669 strain(j) = strain(j) + lbuf%EPE(kk(j)+i)/npt
1670 ENDDO
1671 wwa(239036+ipt)=lbuf%STRA(kk(1)+i)
1672 wwa(239040+ipt)=lbuf%STRA(kk(2)+i)
1673 wwa(239044+ipt)=lbuf%STRA(kk(3)+i)
1674 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1675 DO j = 1, 6
1676 strain(j)= strain(j) + lbuf%STRA(kk(j)+i)/npt
1677 ENDDO
1678
1679 wwa(239036+ipt)=lbuf%STRA(kk(1)+i)
1680 wwa(239040+ipt)=lbuf%STRA(kk(2)+i)
1681 wwa(239044+ipt)=lbuf%STRA(kk(3)+i)
1682 wwa(239048+ipt)=lbuf%STRA(kk(4)+i) *half
1683 wwa(239052+ipt)=lbuf%STRA(kk(5)+i) *half
1684 wwa(239056+ipt)=lbuf%STRA(kk(6)+i) *half
1685 ENDIF
1686 ENDDO ! loop over npt, isolnod = 4 and isrot =
1687
1688
1689
1690 DO j = 1, 3
1691 wwa(1618 + j) = strain(j)
1692 ENDDO
1693
1694 wwa(1618 + 4) = strain(4)
1695 wwa(1618 + 5) = strain(6)
1696 wwa(1618 + 6) = strain(5)
1697
1698 DO j = 1, 6
1699 wwa(239030 + j) = strain(j)
1700 ENDDO
1701
1702
1703 ELSEIF(isrot == 0) THEN
1704 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
1705
1706 IF (mte == 12 .OR. mte == 14) THEN
1707 DO j= 1,3
1708 strain(j) = lbuf%EPE(kk(j)+i)
1709 ENDDO
1710 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1711 DO j= 1,6
1712 strain(j) = lbuf%STRA(kk(j)+i)
1713 ENDDO
1714 ENDIF
1715
1716
1717 DO j
1718 wwa(1618 + j) = strain(j)
1719 ENDDO
1720
1721 wwa(1618 + 4) = strain(4)
1722 wwa(1618 + 5) = strain(6)
1723 wwa(1618 + 6) = strain(5)
1724
1725 DO j = 1, 6
1726 wwa(239030 + j) = strain(j)
1727 ENDDO
1728
1729 ENDIF
1730
1731 ELSEIF (isolnod == 10) THEN
1732
1733
1734
1735 jj = 6*(i-1)
1736 DO j=1,100
1737 user(j) = zero
1738 ENDDO
1739
1740 DO ipt=1,npt
1741 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
1742 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(ipt,1,1)
1743 wwa(40+ipt)=lbuf%SIG(kk(1)+i)
1744 wwa(48+ipt)=lbuf%SIG(kk(2)+i)
1745 wwa(56+ipt)=lbuf%SIG(kk(3)+i)
1746 wwa(64+ipt)=lbuf%SIG(kk(4)+i)
1747 wwa(72+ipt)=lbuf%SIG(kk(5)+i)
1748 wwa(80+ipt)=lbuf%SIG(kk(6)+i)
1749 IF(ivisc > 0 ) THEN
1750 wwa(40+ipt)=wwa(40+ipt) + lbuf%VISC(kk(1)+i)
1751 wwa(48+ipt)=wwa(48+ipt) + lbuf%VISC(kk(2)+i)
1752 wwa(56+ipt)=wwa(56+ipt) + lbuf%VISC(kk(3)+i)
1753 wwa(64+ipt)=wwa(64+ipt) + lbuf%VISC(kk(4)+i)
1754 wwa(72+ipt)=wwa(72+ipt) + lbuf%VISC(kk(5)+i)
1755 wwa(80+ipt)=wwa(80+ipt) + lbuf%VISC(kk(6)+i)
1756 ENDIF
1757 IF (mte >= 28) THEN
1758 nuvarth =
min(60,nuvar)
1759 DO j=1, nuvarth
1760 user(j) = user(j) +
1761 . mbuf%VAR(i + (j-1)*nel )/npt
1762 ENDDO
1763 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1764 DO j = 1, 6
1765 strain(j)= strain(j) + lbuf%STRA(kk(j)+i)/npt
1766 ENDDO
1767 wwa(239036+ipt)=lbuf%STRA(kk(1)+i)
1768 wwa(239040+ipt)=lbuf%STRA(kk(2)+i)
1769 wwa(239044+ipt)=lbuf%STRA(kk(3)+i)
1770 wwa(239048+ipt)=lbuf%STRA(kk(4)+i) *half
1771 wwa(239052+ipt)=lbuf%STRA(kk(5)+i) *half
1772 wwa(239056+ipt)=lbuf%STRA(kk(6)+i) *half
1773 ENDIF
1774 ELSEIF(mte == 12 .OR. mte == 14) THEN
1775 DO j = 1, 3
1776 strain(j) = strain(j) + lbuf%EPE(kk(j)+i)/npt
1777 ENDDO
1778 wwa(239036+ipt)=lbuf%EPE(kk(1)+i)
1779 wwa(239040+ipt)=lbuf%EPE(kk(2)+i)
1780 wwa(239044+ipt)=lbuf%EPE(kk(3)+i)
1781 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
1782 DO j= 1,6
1783 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)/nptg
1784 ENDDO
1785
1786 wwa(239036+ipt)=lbuf%STRA(kk(1)+i)
1787 wwa(239040+ipt)=lbuf%STRA(kk(2)+i)
1788 wwa(239044+ipt)=lbuf%STRA(kk(3)+i)
1789 wwa(239048+ipt)=lbuf%STRA(kk(4)+i) *half
1790 wwa(239052+ipt)=lbuf%STRA(kk(5)+i) *half
1791 wwa(239056+ipt)=lbuf%STRA(kk(6)+i) *half
1792 ENDIF
1793 ENDDO
1794
1795 IF ( mte >= 28) THEN
1796
1797 nuvarth =
min(60,nuvar)
1798 DO j=1,nuvarth
1799 wwa(136+j)= user(j)
1800 ENDDO
1801 ENDIF
1802
1803
1804 DO j = 1, 3
1805 wwa(1618 + j) = strain(j)
1806 ENDDO
1807
1808 wwa(1618 + 4) = strain(4)
1809 wwa(1618 + 5) = strain(6)
1810 wwa(1618 + 6) = strain(5)
1811
1812 DO j = 1, 6
1813 wwa(239030 + j) = strain(j)
1814 ENDDO
1815
1816
1817 ELSEIF( isolnod == 16 .OR. isolnod == 20 .OR. (isolnod == 8.AND.(khbe == 14.OR.khbe == 17)))THEN
1818
1819
1820
1821
1822
1823 jj = 6*(i-1)
1824 nptg=nptt*npts*nptr*nlay
1825 DO j=1, 100
1826 user(j) = zero
1827 ENDDO
1828
1829 DO il =1,nlay
1830
1831 DO is=1,npts
1832 ispau= 1
1833 DO it=1,nptt
1834 DO ir=1,nptr
1835 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1836 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
1837
1838
1839 cpt=(it-1)*99*6+((ir-1)*9+is-1)*6
1840
1841 ipt = ir + ( (is-1) + (it-1)*npts )*nptr
1842 ipwwa = (it-1)*3*9*7 + (is-1)*3*7 + (ir-1)*7
1843 iuwwa = (it-1)*3*9*9 + (is-1)*3*9 + (ir-1)*9
1844 IF(isolnod == 8)THEN
1845 ipwwa = (ir-1)*3*9*7 + (it-1)*3*7 + (is-1)*7
1846 iuwwa = (ir-1)*3*9*9 + (it-1)*3*9 + (is-1)*9
1847 ENDIF
1848 IF(isolnod == 16)THEN
1849 ipt = ir + ( (il-1) + (it-1)*nlay )*nptr
1850 ipwwa = (it-1)*3*9*7 + (il-1)*3*7 + (ir-1)*7
1851 iuwwa = (it-1)*3*9*9 + (il-1)*3*9 + (ir-1)*9
1852 ENDIF
1853
1854 DO itens=1,6
1855 wwa(196+ipwwa+itens) = lbuf%SIG(kk(itens)+i)
1856 sigp(itens,ispau,is) = lbuf%SIG(kk(itens)+i)
1857 ENDDO
1858
1859 IF (mte >= 28) THEN
1860 IF (nuvar > 0) THEN
1861 wwa(196+ipwwa+7) = mbuf%VAR(i)
1862 sigp(7,ispau,is) = mbuf%VAR(i)
1863 ENDIF
1864
1865 nuvarth =
min(9,nuvar)
1866 DO j=1, nuvarth
1867 wwa(889 + j + iuwwa) = mbuf%VAR(i+(j-1)*nel)
1868 ENDDO
1869
1870 nuvarth =
min(60,nuvar)
1871 DO j=1, nuvarth
1872 user(j) = user(j)+mbuf%VAR(i+(j-1)*nel)/nptg
1873 wwa(889+j+iuwwa) =mbuf%VAR(i+(j-1)*nel)
1874 ENDDO
1875 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0)THEN
1876 DO j = 1, 3
1877 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)/nptg
1878 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i)
1879 ENDDO
1880 DO j = 4, 6
1881 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)*half/nptg
1882 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i) *half
1883 ENDDO
1884 ENDIF
1885
1886 ELSE
1887
1888 IF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0) THEN
1889 wwa(196 + ipwwa + 7)=lbuf%PLA(i)
1890 sigp(7,ispau,is)= lbuf%PLA(i)
1891 ENDIF
1892 IF (mte==12 .OR. mte == 14) THEN
1893 DO j=1,3
1894 strain(j) = strain(j) + lbuf%EPE(kk(j)+i)/nptg
1895 wwa(239060+ipwwa+j)=lbuf%EPE(kk(j)+i)
1896 ENDDO
1897 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0)THEN
1898 DO j = 1, 3
1899 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)/nptg
1900 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i)
1901 ENDDO
1902 DO j = 4, 6
1903 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)*half/nptg
1904 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i) *half
1905 ENDDO
1906 ENDIF
1907 ENDIF
1908 ispau=ispau+1
1909 ENDDO
1910 ENDDO
1911 ENDDO
1912 ENDDO
1913
1914
1915 IF (mte >= 28) THEN
1916
1917 nuvarth =
min(60,nuvar)
1918 DO j=1, nuvarth
1919 wwa(136 + j) = user(j)
1920 ENDDO
1921 ENDIF
1922
1923 IF (khbe == 17) THEN
1924 IF (kcvt==-1)THEN
1925 gama(1)=gbuf%GAMA(kk(1) + i)
1926 gama(2)=gbuf%GAMA(kk(2) + i)
1927 gama(3)=gbuf%GAMA(kk(3) + i)
1928 gama(4)=gbuf%GAMA(kk(4) + i)
1929 gama(5)=gbuf%GAMA(kk(5) + i)
1930 gama(6)=gbuf%GAMA(kk(6) + i)
1931 CALL srota6(x,ixs(1,n),2,strain,gama,khbe,igtyp,isorth)
1932 ENDIF
1933 ENDIF
1934 DO j = 1, 6
1935 wwa(239030 + j) = strain(j)
1936 ENDDO
1937
1938 DO j = 1, 3
1939 wwa(1618 + j) = strain(j)
1940 ENDDO
1941
1942 wwa(1618 + 4) = strain(4)
1943 wwa(1618 + 5) = strain(6)
1944 wwa(1618 + 6) = strain(5)
1945
1946
1947
1948 IF(isolnod == 16 ) THEN
1949 nptl = nlay
1950 ELSE
1951 nptl= npts
1952 ENDIF
1953
1954
1955 IF (npt < 0) THEN
1956
1957 ispau=1
1958 DO it=1,nptt
1959 DO ir=1,nptr
1960 ipwwa = (it-1)*3*7 + (ir-1)*7
1961 DO itens=1,7
1962 wwa(826+itens+ipwwa) = sigp(itens,ispau,1)
1963 wwa(763+itens+ipwwa) = sigp(itens,ispau,npts)
1964 ENDDO
1965 ispau=ispau+1
1966 ENDDO
1967 ENDDO
1968 ELSE
1969 IF (nptl > 2) THEN
1970 ispau=1
1971 DO it=1,nptt
1972 DO ir=1,nptr
1973 ipwwa = (it-1)*3*7 + (ir-1)*7
1974 DO itens=1,7
1975
1976 wwa(826+itens+ipwwa) = sigp(itens,ispau,1)
1977 . +(sigp(itens,ispau,2)-sigp(itens,ispau,1))
1978 . *(-1 - a_gauss(1,nptl))
1979 . /(a_gauss(2,nptl)-a_gauss(1,nptl))
1980
1981 wwa(763+itens+ipwwa)= sigp(itens,ispau,nptl-1)
1982 . +(sigp(itens,ispau,nptl)
1983 . - sigp(itens,ispau,nptl-1))
1984 . *(1 - a_gauss(nptl-1,nptl))
1985 . /(a_gauss(nptl,nptl)-a_gauss(nptl-1,nptl))
1986
1987 ENDDO
1988 ispau=ispau+1
1989 ENDDO
1990 ENDDO
1991 ELSE
1992 ispau=1
1993 DO it=1,nptt
1994 DO ir=1,nptr
1995 ipwwa = (it-1)*3*7 + (ir-1)*7
1996 DO itens=1,7
1997
1998 wwa(826+itens+ipwwa)
1999 . = sigp(itens,ispau,1)
2000 . +(sigp(itens,ispau,2)-sigp(itens,ispau,1))
2001 . *(-1 - a_gauss(1,nptl))
2002 . /(a_gauss(2,nptl)-a_gauss(1,nptl))
2003
2004 wwa(763 + itens + ipwwa)
2005 . = sigp(itens,ispau,1)
2006 . +(sigp(itens,ispau,2)-sigp(itens,ispau,1))
2007 . *(1 - a_gauss(1,nptl))
2008 . /(a_gauss(2,nptl)-a_gauss(1,nptl))
2009
2010 ENDDO
2011 ispau=ispau+1
2012 ENDDO
2013 ENDDO
2014 ENDIF
2015 ENDIF
2016
2017
2018 ELSEIF ((isolnod==6 .OR. isolnod==8) .AND. khbe==15) THEN
2019
2020
2021
2022
2023 jj = 6*(i-1)
2024 DO j=1, 100
2025 user(j) = zero
2026 ENDDO
2027 npts = npt
2028
2029 DO ipt=1,npts
2030 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
2031 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(ipt,1,1)
2032
2033
2034 ipwwa = (ipt-1)*3*7
2035 iuwwa = (ipt-1)*3*9
2036 DO itens=1,6
2037 wwa(196+ipwwa+itens)=lbuf%SIG(kk(itens)+i)
2038 sigp(itens,1,ipt)= lbuf%SIG(kk(itens)+i)
2039 ENDDO
2040 IF(ivisc > 0 ) THEN
2041 DO itens=1,6
2042 wwa(196+ipwwa+itens)= wwa(196+ipwwa+itens) + lbuf%VISC(kk(itens)+i)
2043 sigp(itens,1,ipt)= sigp(itens,1,ipt)+ lbuf%VISC(kk(itens)+i)
2044 ENDDO
2045 ENDIF
2046
2047 IF (mte >= 28) THEN
2048 IF (nuvar > 0) THEN
2049 wwa(196+ipwwa+7) = mbuf%VAR(i)
2050 sigp(7, 1 ,ipt)= mbuf%VAR(i)
2051 ENDIF
2052
2053 nuvarth =
min(9,nuvar)
2054 DO j=1, nuvarth
2055 wwa(889 + j + iuwwa) = mbuf%VAR(i + (j-1)*nel )
2056 ENDDO
2057
2058 nuvarth =
min(60,nuvar)
2059 DO j=1, nuvarth
2060 user(j) = user(j) + mbuf%VAR(i+(j-1)*nel)/npt
2061 wwa(889+j+iuwwa) = mbuf%VAR(i+(j-1)*nel)
2062 ENDDO
2063 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
2064 DO j= 1,3
2065 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)/npt
2066 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i)
2067 ENDDO
2068 DO j= 4,6
2069 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)*half/npt
2070 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i)*half
2071 ENDDO
2072 ENDIF
2073 ELSE
2074 IF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0) THEN
2075 wwa(196 + ipwwa + 7)= lbuf%PLA(i)
2076 sigp(7, 1 ,ipt) = lbuf%PLA(i)
2077 ENDIF
2078 IF (mte == 12 .OR. mte == 14) THEN
2079 DO j=1,3
2080 strain(j) = strain(j) + lbuf%EPE(kk(j)+i)/npt
2081 wwa(239060+ipwwa+j)=lbuf%EPE(kk(j)+i)
2082 ENDDO
2083 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
2084 DO j= 1,3
2085 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)/npt
2086 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i)
2087 ENDDO
2088 DO j= 4,6
2089 strain(j) = strain(j) + lbuf%STRA(kk(j)+i)*half/npt
2090 wwa(239060+ipwwa+j)=lbuf%STRA(kk(j)+i)*half
2091 ENDDO
2092 ENDIF
2093 ENDIF
2094 ENDDO
2095
2096 IF (mte >= 28)THEN
2097
2098 nuvarth =
min(60,nuvar)
2099 DO j=1, nuvarth
2100 wwa(136 + j) = user(j)
2101 ENDDO
2102 ENDIF
2103
2104 DO j = 1, 3
2105 wwa(1618 + j) = strain(j)
2106 ENDDO
2107
2108 wwa(1618 + 4) = strain(4)
2109 wwa(1618 + 5) = strain(6)
2110 wwa(1618 + 6) = strain(5)
2111
2112 DO j = 1, 6
2113 wwa(239030 + j) = strain(j)
2114 ENDDO
2115
2116 IF(npts > 2) THEN
2117 ipwwa = 0
2118 DO itens=1,7
2119 wwa(826+itens + ipwwa) = sigp(itens,1,1)
2120 . +(sigp(itens,1,2)-sigp(itens,1,1))
2121 . *(-1 - a_gauss(1,npts))
2122 . /(a_gauss(2,npts)-a_gauss(1,npts))
2123 wwa(763+itens+ipwwa) = sigp(itens,1,npts-1)
2124 . +(sigp(itens,1,npts)
2125 . - sigp(itens,1,npts-1))
2126 . *(1 - a_gauss(npts-1,npts))
2127 . /(a_gauss(npts,npts)-a_gauss(npts-1,npts))
2128 ENDDO
2129 ELSE
2130 ipwwa = 0
2131 DO itens=1,7
2132 wwa(826+itens+ipwwa) = sigp(itens,1,1)
2133 . +(sigp(itens,1,2)-sigp(itens,1,1))
2134 . *(-1 - a_gauss(1,npts))
2135 . /(a_gauss(2,npts)-a_gauss(1,npts))
2136 wwa(763 + itens + ipwwa) = sigp(itens,1,1)
2137 . +(sigp(itens,1,2)-sigp(itens,1,1))
2138 .
2139 . /(a_gauss(2,npts)-a_gauss(1,npts))
2140 ENDDO
2141 ENDIF
2142
2143 ELSEIF (isolnod == 8.AND.khbe /= 14.AND.khbe /= 24) THEN
2144
2145 jj = 6*(i-1)
2146 IF (npt == 8) THEN
2147 nlay = elbuf_tab(ng)%NLAY
2148 nptr = elbuf_tab(ng)%NPTR
2149 npts = elbuf_tab(ng)%NPTS
2150 nptt = elbuf_tab(ng)%NPTT
2151 npt = nptr * npts * nptt * nlay
2152 DO it=1,nptt
2153 DO is=1,npts
2154 DO ir=1,nptr
2155 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
2156 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,it)
2157 ipt = ir + ( (is-1) + (it-1)*npts )*nptr
2158 wwa(40+ipt)=lbuf%SIG(kk(1)+i)
2159 wwa(48+ipt)=lbuf%SIG(kk(2)+i)
2160 wwa(56+ipt)=lbuf%SIG(kk(3)+i)
2161 wwa(64+ipt)=lbuf%SIG(kk(4)+i)
2162 wwa(72+ipt)=lbuf%SIG(kk(5)+i)
2163 wwa(80+ipt)=lbuf%SIG(kk(6)+i)
2164 IF(ivisc > 0 ) THEN
2165 wwa(40+ipt)=wwa(40+ipt) + lbuf%VISC(kk(1)+i)
2166 wwa(48+ipt)=wwa(48+ipt) + lbuf%VISC(kk(2)+i)
2167 wwa(56+ipt)=wwa(56+ipt) + lbuf%VISC(kk(3)+i)
2168 wwa(64+ipt)=wwa(64+ipt) + lbuf%VISC(kk(4)+i)
2169 wwa(72+ipt)=wwa(72+ipt) + lbuf%VISC(kk(5)+i)
2170 wwa(80+ipt)=wwa(80+ipt) + lbuf%VISC(kk(6)+i)
2171 ENDIF
2172
2173 ipwwa = (it-1)*3*9*7 + (is-1)*3*7 + (ir-1)*7
2174 iuwwa = (it-1)*3*9*9 + (is-1)*3*9 + (ir-1)*9
2175 DO itens = 1,6
2176 jj = 6*(i-1)
2177 wwa(196+ipwwa+itens)=lbuf%SIG(kk(itens)+i)
2178 ENDDO
2179 IF(ivisc > 0 ) THEN
2180 DO itens = 1,6
2181 jj = 6*(i-1)
2182 wwa(196+ipwwa+itens)=wwa(196+ipwwa+itens) + lbuf%VISC(kk(itens)+i)
2183 ENDDO
2184 ENDIF
2185 IF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0)
2186 . wwa(196+ipwwa+ 7 ) = lbuf%PLA(i)
2187 IF (mte >= 28) THEN
2188 IF (nuvar>0) THEN
2189 wwa(196+ipwwa+ 7 ) = mbuf%VAR(i)
2190 ENDIF
2191
2192 nuvarth =
min(9,nuvar)
2193 DO j=1,nuvarth
2194 wwa(889 + iuwwa + j) = mbuf%VAR(i+(j-1)*nel)
2195 ENDDO
2196 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
2197 strain(1)=strain(1) + lbuf%STRA(kk(1)+i)*one_over_8
2198 strain(2)=strain(2) + lbuf%STRA(kk(2)+i)*one_over_8
2199 strain(3)=strain(3) + lbuf%STRA(kk(3)+i)*one_over_8
2200 strain(4)=strain(4) + lbuf%STRA(kk(4)+i)*one_over_8
2201 strain(5)=strain(5) + lbuf%STRA(kk(5)+i)*one_over_8
2202 strain(6)=strain(6) + lbuf%STRA(kk(6)+i)*one_over_8
2203 ENDIF
2204 ENDIF
2205 ENDDO
2206 ENDDO
2207 ENDDO
2208
2209 ELSEIF(npt == 1)THEN
2210 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
2211
2212 IF (mte == 12 .OR. mte == 14) THEN
2213 DO j= 1,3
2214 strain(j) = lbuf%EPE(kk(j)+i)
2215 ENDDO
2216
2217 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_STRA > 0) THEN
2218 DO j= 1,3
2219 strain(j) = lbuf%STRA(kk(j)+i)
2220 ENDDO
2221 DO j= 4,6
2222 strain(j) = lbuf%STRA(kk(j)+i) *half
2223 ENDDO
2224 ENDIF
2225 ENDIF
2226
2227
2228 IF (kcvt==-1) THEN
2229 gama(1)=gbuf%GAMA(kk(1) + i)
2230 gama(2)=gbuf%GAMA(kk(2) + i)
2231 gama(3)=gbuf%GAMA(kk(3) + i)
2232 gama(4)=gbuf%GAMA(kk(4) + i)
2233 gama(5)=gbuf%GAMA(kk(5) + i)
2234 gama(6)=gbuf%GAMA(kk(6) + i)
2236 1 x , ixs(1,n), 2 , strain,
2237 2 gama, khbe , igtyp, isorth)
2238 ENDIF
2239 DO j = 1, 6
2240 wwa(239030 + j) = strain(j)
2241 ENDDO
2242
2243 DO j = 1, 3
2244 wwa(1618 + j) = strain(j)
2245 ENDDO
2246
2247 wwa(1618 + 4) = strain(4)
2248 wwa(1618 + 5) = strain(6)
2249 wwa(1618 + 6) = strain(5)
2250
2251 ENDIF ! isolnod
2252
2253 ENDIF
2254
2255 DO l=iadv,iadv+
nvar-1
2256 k=ithbuf(l)
2257 ijk=ijk+1
2258 wa(ijk)=wwa(k)
2259 ENDDO
2260 ijk=ijk+1
2261 wa(ijk) = ii
2262
2263
2264 ENDIF
2265 ENDDO
2266 isorthg = isorth
2267
2268 ENDIF
2269 ENDIF
2270 ENDDO
2271 666 continue
2272
2273 ENDIF
2274 ENDDO
2275 DEALLOCATE(wwa)
2276
2277 RETURN
type(alefvm_param_), target alefvm_param
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
integer function nvar(text)
subroutine scoor431(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine scortho31(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine sortho31(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine srota6(x, ixs, kcvt, tens, gama)