5 &(t,xm,xmul,su,sv,sw,u,v,w,f,g,
6 & x,y,z,ikle,nelem,nelmax,sigmag,specad,nplan)
89 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NPLAN
90 INTEGER,
INTENT(IN) :: IKLE(nelmax,6)
92 DOUBLE PRECISION,
INTENT(INOUT) :: T(nelmax,6),XM(nelmax,30)
94 DOUBLE PRECISION,
INTENT(IN) :: XMUL
95 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*),W(*)
96 DOUBLE PRECISION,
INTENT(IN) :: F(*),G(*)
100 TYPE(bief_obj),
INTENT(IN) :: SU,SV,SW
102 DOUBLE PRECISION,
INTENT(IN) :: X(nelmax,6),Y(nelmax,6),Z(*)
103 LOGICAL,
INTENT(IN) :: SIGMAG,SPECAD
109 DOUBLE PRECISION INT1,X2,X3,Y2,Y3,DEN,DET,G2,G3,GRADGX,GRADGY
110 DOUBLE PRECISION PZ1,PX1,PX2,PX3,PY1,PY2,PY3
111 DOUBLE PRECISION U1,U2,U3,U4,U5,U6,V1,V2,V3,V4,V5,V6
112 DOUBLE PRECISION Q1,Q2,Q3,H1,H2,H3,HT
113 DOUBLE PRECISION SUS,SUI,SHUI,SHUS
114 DOUBLE PRECISION SHUI1,SHUS1,SHUI2,SHUS2,SHUI3,SHUS3
115 DOUBLE PRECISION HU1S3I,HU1I3S,HU1SI,HU2S3I,HU2I3S,HU2SI
116 DOUBLE PRECISION HU3S3I,HU3I3S,HU3SI
117 DOUBLE PRECISION SVS,SVI,SHVI,SHVS
118 DOUBLE PRECISION SHVI1,SHVS1,SHVI2,SHVS2,SHVI3,SHVS3
119 DOUBLE PRECISION HV1S3I,HV1I3S,HV1SI,HV2S3I,HV2I3S,HV2SI
120 DOUBLE PRECISION HV3S3I,HV3I3S,HV3SI,HH1,HH2,HH3,DZ1,DZ2,DZ3
122 INTEGER I1,I2,I3,I4,I5,I6,IELEM,IELEM2,IELEM3,NELEM2
126 IF(su%ELM.NE.41)
THEN 127 WRITE(
lu,1001) su%ELM
128 1001
FORMAT(1x,
'MT05PP (BIEF) : TYPE OF U NOT IMPLEMENTED: ',i6)
132 IF(sv%ELM.NE.41)
THEN 133 WRITE(
lu,2001) sv%ELM
134 2001
FORMAT(1x,
'MT05PP (BIEF) : TYPE OF V NOT IMPLEMENTED: ',i6)
139 IF(sw%ELM.NE.41)
THEN 140 WRITE(
lu,3001) sw%ELM
141 3001
FORMAT(1x,
'MT05PP (BIEF) : TYPE OF W NOT IMPLEMENTED: ',i6)
209 shui = h3*u3+h2*u2+h1*u1
210 shus = h3*u6+h2*u5+h1*u4
211 shus1 = (ht+h1)*(sus+u4)+shus+u4*h1
212 shui1 = (ht+h1)*(sui+u1)+shui+u1*h1
213 shus2 = (ht+h2)*(sus+u5)+shus+u5*h2
214 shui2 = (ht+h2)*(sui+u2)+shui+u2*h2
215 shus3 = (ht+h3)*(sus+u6)+shus+u6*h3
216 shui3 = (ht+h3)*(sui+u3)+shui+u3*h3
217 hu1s3i = shus1+3*shui1
218 hu1i3s = shui1+3*shus1
220 hu2s3i = shus2+3*shui2
221 hu2i3s = shui2+3*shus2
223 hu3s3i = shus3+3*shui3
224 hu3i3s = shui3+3*shus3
229 shvi = h3*v3+h2*v2+h1*v1
230 shvs = h3*v6+h2*v5+h1*v4
231 shvs1 = (ht+h1)*(svs+v4)+shvs+v4*h1
232 shvi1 = (ht+h1)*(svi+v1)+shvi+v1*h1
233 shvs2 = (ht+h2)*(svs+v5)+shvs+v5*h2
234 shvi2 = (ht+h2)*(svi+v2)+shvi+v2*h2
235 shvs3 = (ht+h3)*(svs+v6)+shvs+v6*h3
236 shvi3 = (ht+h3)*(svi+v3)+shvi+v3*h3
237 hv1s3i = shvs1+3*shvi1
238 hv1i3s = shvi1+3*shvs1
240 hv2s3i = shvs2+3*shvi2
241 hv2i3s = shvi2+3*shvs2
243 hv3s3i = shvs3+3*shvi3
244 hv3i3s = shvi3+3*shvs3
250 pz1=-den*(x2*y3-y2*x3)*30
253 xm(ielem,3) =-t(ielem,1)
254 xm(ielem,18)= t(ielem,1)
255 t(ielem,4) =-t(ielem,1)
258 xm(ielem,8) =-t(ielem,2)
259 xm(ielem,23)= t(ielem,2)
260 t(ielem,5) =-t(ielem,2)
263 xm(ielem,12)=-t(ielem,3)
264 xm(ielem,27)= t(ielem,3)
265 t(ielem,6) =-t(ielem,3)
268 xm(ielem,7) =-xm(ielem,16)
269 xm(ielem,17)= xm(ielem,16)
270 xm(ielem,10)=-xm(ielem,16)
271 xm(ielem,19)= xm(ielem,16)
272 xm(ielem,28)=-xm(ielem,16)
273 xm(ielem,20)= xm(ielem,16)
274 xm(ielem,29)=-xm(ielem,16)
277 xm(ielem,4) =-xm(ielem,1)
278 xm(ielem,22)= xm(ielem,1)
279 xm(ielem,13)=-xm(ielem,1)
280 xm(ielem,21)= xm(ielem,1)
281 xm(ielem,11)=-xm(ielem,1)
282 xm(ielem,24)= xm(ielem,1)
283 xm(ielem,30)=-xm(ielem,1)
286 xm(ielem,5)=-xm(ielem,2)
287 xm(ielem,25)=xm(ielem,2)
288 xm(ielem,14)=-xm(ielem,2)
289 xm(ielem,26)=xm(ielem,2)
290 xm(ielem,15)=-xm(ielem,2)
291 xm(ielem,6)=xm(ielem,2)
292 xm(ielem,9)=-xm(ielem,2)
294 t(ielem,1)=t(ielem,1)+px1*hu1s3i+py1*hv1s3i
295 t(ielem,2)=t(ielem,2)+px2*hu2s3i+py2*hv2s3i
296 t(ielem,3)=t(ielem,3)+px3*hu3s3i+py3*hv3s3i
297 t(ielem,4)=t(ielem,4)+px1*hu1i3s+py1*hv1i3s
298 t(ielem,5)=t(ielem,5)+px2*hu2i3s+py2*hv2i3s
299 t(ielem,6)=t(ielem,6)+px3*hu3i3s+py3*hv3i3s
301 xm(ielem,01)=xm(ielem,01)+px2*hu1s3i+py2*hv1s3i
302 xm(ielem,02)=xm(ielem,02)+px3*hu1s3i+py3*hv1s3i
303 xm(ielem,03)=xm(ielem,03)+px1*hu1si +py1*hv1si
304 xm(ielem,04)=xm(ielem,04)+px2*hu1si +py2*hv1si
305 xm(ielem,05)=xm(ielem,05)+px3*hu1si +py3*hv1si
306 xm(ielem,06)=xm(ielem,06)+px3*hu2s3i+py3*hv2s3i
307 xm(ielem,07)=xm(ielem,07)+px1*hu2si +py1*hv2si
308 xm(ielem,08)=xm(ielem,08)+px2*hu2si +py2*hv2si
309 xm(ielem,09)=xm(ielem,09)+px3*hu2si +py3*hv2si
310 xm(ielem,10)=xm(ielem,10)+px1*hu3si +py1*hv3si
311 xm(ielem,11)=xm(ielem,11)+px2*hu3si +py2*hv3si
312 xm(ielem,12)=xm(ielem,12)+px3*hu3si +py3*hv3si
313 xm(ielem,13)=xm(ielem,13)+px2*hu1i3s+py2*hv1i3s
314 xm(ielem,14)=xm(ielem,14)+px3*hu1i3s+py3*hv1i3s
315 xm(ielem,15)=xm(ielem,15)+px3*hu2i3s+py3*hv2i3s
316 xm(ielem,16)=xm(ielem,16)+px1*hu2s3i+py1*hv2s3i
317 xm(ielem,17)=xm(ielem,17)+px1*hu3s3i+py1*hv3s3i
318 xm(ielem,18)=xm(ielem,18)+px1*hu1si +py1*hv1si
319 xm(ielem,19)=xm(ielem,19)+px1*hu2si +py1*hv2si
320 xm(ielem,20)=xm(ielem,20)+px1*hu3si +py1*hv3si
321 xm(ielem,21)=xm(ielem,21)+px2*hu3s3i+py2*hv3s3i
322 xm(ielem,22)=xm(ielem,22)+px2*hu1si +py2*hv1si
323 xm(ielem,23)=xm(ielem,23)+px2*hu2si +py2*hv2si
324 xm(ielem,24)=xm(ielem,24)+px2*hu3si +py2*hv3si
325 xm(ielem,25)=xm(ielem,25)+px3*hu1si +py3*hv1si
326 xm(ielem,26)=xm(ielem,26)+px3*hu2si +py3*hv2si
327 xm(ielem,27)=xm(ielem,27)+px3*hu3si +py3*hv3si
328 xm(ielem,28)=xm(ielem,28)+px1*hu2i3s+py1*hv2i3s
329 xm(ielem,29)=xm(ielem,29)+px1*hu3i3s+py1*hv3i3s
330 xm(ielem,30)=xm(ielem,30)+px2*hu3i3s+py2*hv3i3s
338 nelem2 = nelem/(nplan-1)
359 ielem2 = mod(ielem-1,nelem2) + 1
362 g2 = g(ielem2+nelem2)-g(ielem2)
363 g3 = g(ielem2+2*nelem2)-g(ielem2)
364 gradgx=(g2*y3-g3*y2)/det
365 gradgy=(x2*g3-x3*g2)/det
367 u1=u(i1)+f(i1)*gradgx
368 u2=u(i2)+f(i2)*gradgx
369 u3=u(i3)+f(i3)*gradgx
370 u4=u(i4)+f(i4)*gradgx
371 u5=u(i5)+f(i5)*gradgx
372 u6=u(i6)+f(i6)*gradgx
373 v1=v(i1)+f(i1)*gradgy
374 v2=v(i2)+f(i2)*gradgy
375 v3=v(i3)+f(i3)*gradgy
376 v4=v(i4)+f(i4)*gradgy
377 v5=v(i5)+f(i5)*gradgy
378 v6=v(i6)+f(i6)*gradgy
401 shui = h3*u3+h2*u2+h1*u1
402 shus = h3*u6+h2*u5+h1*u4
403 shus1 = (ht+h1)*(sus+u4)+shus+u4*h1
404 shui1 = (ht+h1)*(sui+u1)+shui+u1*h1
405 shus2 = (ht+h2)*(sus+u5)+shus+u5*h2
406 shui2 = (ht+h2)*(sui+u2)+shui+u2*h2
407 shus3 = (ht+h3)*(sus+u6)+shus+u6*h3
408 shui3 = (ht+h3)*(sui+u3)+shui+u3*h3
409 hu1s3i = shus1+3*shui1
410 hu1i3s = shui1+3*shus1
412 hu2s3i = shus2+3*shui2
413 hu2i3s = shui2+3*shus2
415 hu3s3i = shus3+3*shui3
416 hu3i3s = shui3+3*shus3
421 shvi = h3*v3+h2*v2+h1*v1
422 shvs = h3*v6+h2*v5+h1*v4
423 shvs1 = (ht+h1)*(svs+v4)+shvs+v4*h1
424 shvi1 = (ht+h1)*(svi+v1)+shvi+v1*h1
425 shvs2 = (ht+h2)*(svs+v5)+shvs+v5*h2
426 shvi2 = (ht+h2)*(svi+v2)+shvi+v2*h2
427 shvs3 = (ht+h3)*(svs+v6)+shvs+v6*h3
428 shvi3 = (ht+h3)*(svi+v3)+shvi+v3*h3
429 hv1s3i = shvs1+3*shvi1
430 hv1i3s = shvi1+3*shvs1
432 hv2s3i = shvs2+3*shvi2
433 hv2i3s = shvi2+3*shvs2
435 hv3s3i = shvs3+3*shvi3
436 hv3i3s = shvi3+3*shvs3
442 pz1=-den*(x2*y3-y2*x3)*30
492 t(ielem,1)=t(ielem,1)+px1*hu1s3i+py1*hv1s3i
493 t(ielem,2)=t(ielem,2)+px2*hu2s3i+py2*hv2s3i
494 t(ielem,3)=t(ielem,3)+px3*hu3s3i+py3*hv3s3i
495 t(ielem,4)=t(ielem,4)+px1*hu1i3s+py1*hv1i3s
496 t(ielem,5)=t(ielem,5)+px2*hu2i3s+py2*hv2i3s
497 t(ielem,6)=t(ielem,6)+px3*hu3i3s+py3*hv3i3s
499 xm(ielem,01)=xm(ielem,01)+px2*hu1s3i+py2*hv1s3i
500 xm(ielem,02)=xm(ielem,02)+px3*hu1s3i+py3*hv1s3i
501 xm(ielem,03)=xm(ielem,03)+px1*hu1si +py1*hv1si
502 xm(ielem,04)=xm(ielem,04)+px2*hu1si +py2*hv1si
503 xm(ielem,05)=xm(ielem,05)+px3*hu1si +py3*hv1si
504 xm(ielem,06)=xm(ielem,06)+px3*hu2s3i+py3*hv2s3i
505 xm(ielem,07)=xm(ielem,07)+px1*hu2si +py1*hv2si
506 xm(ielem,08)=xm(ielem,08)+px2*hu2si +py2*hv2si
507 xm(ielem,09)=xm(ielem,09)+px3*hu2si +py3*hv2si
508 xm(ielem,10)=xm(ielem,10)+px1*hu3si +py1*hv3si
509 xm(ielem,11)=xm(ielem,11)+px2*hu3si +py2*hv3si
510 xm(ielem,12)=xm(ielem,12)+px3*hu3si +py3*hv3si
511 xm(ielem,13)=xm(ielem,13)+px2*hu1i3s+py2*hv1i3s
512 xm(ielem,14)=xm(ielem,14)+px3*hu1i3s+py3*hv1i3s
513 xm(ielem,15)=xm(ielem,15)+px3*hu2i3s+py3*hv2i3s
514 xm(ielem,16)=xm(ielem,16)+px1*hu2s3i+py1*hv2s3i
515 xm(ielem,17)=xm(ielem,17)+px1*hu3s3i+py1*hv3s3i
516 xm(ielem,18)=xm(ielem,18)+px1*hu1si +py1*hv1si
517 xm(ielem,19)=xm(ielem,19)+px1*hu2si +py1*hv2si
518 xm(ielem,20)=xm(ielem,20)+px1*hu3si +py1*hv3si
519 xm(ielem,21)=xm(ielem,21)+px2*hu3s3i+py2*hv3s3i
520 xm(ielem,22)=xm(ielem,22)+px2*hu1si +py2*hv1si
521 xm(ielem,23)=xm(ielem,23)+px2*hu2si +py2*hv2si
522 xm(ielem,24)=xm(ielem,24)+px2*hu3si +py2*hv3si
523 xm(ielem,25)=xm(ielem,25)+px3*hu1si +py3*hv1si
524 xm(ielem,26)=xm(ielem,26)+px3*hu2si +py3*hv2si
525 xm(ielem,27)=xm(ielem,27)+px3*hu3si +py3*hv3si
526 xm(ielem,28)=xm(ielem,28)+px1*hu2i3s+py1*hv2i3s
527 xm(ielem,29)=xm(ielem,29)+px1*hu3i3s+py1*hv3i3s
528 xm(ielem,30)=xm(ielem,30)+px2*hu3i3s+py2*hv3i3s
542 202
FORMAT(1x,
'MT05PP (BIEF) :',/,
543 & 1x,
'SIGMAG=T AND SPECAD=T : ',1i6,
' NOT IMPLEMENTED',/,
544 & 1x,
'REAL NAME OF U : ',a6)
549 nelem2 = nelem/(nplan-1)
553 ielem2 = mod(ielem-1,nelem2) + 1
554 ielem3 = nelem - nelem2 + ielem2
571 h1 = z(ikle(ielem3,4))-z(ikle(ielem2,1))
572 h2 = z(ikle(ielem3,5))-z(ikle(ielem2,2))
573 h3 = z(ikle(ielem3,6))-z(ikle(ielem2,3))
618 shui = h3*u3+h2*u2+h1*u1
619 shus = h3*u6+h2*u5+h1*u4
620 shus1 = (ht+h1)*(sus+u4)+shus+u4*h1
621 shui1 = (ht+h1)*(sui+u1)+shui+u1*h1
622 shus2 = (ht+h2)*(sus+u5)+shus+u5*h2
623 shui2 = (ht+h2)*(sui+u2)+shui+u2*h2
624 shus3 = (ht+h3)*(sus+u6)+shus+u6*h3
625 shui3 = (ht+h3)*(sui+u3)+shui+u3*h3
626 hu1s3i = shus1+3*shui1
627 hu1i3s = shui1+3*shus1
629 hu2s3i = shus2+3*shui2
630 hu2i3s = shui2+3*shus2
632 hu3s3i = shus3+3*shui3
633 hu3i3s = shui3+3*shus3
638 shvi = h3*v3+h2*v2+h1*v1
639 shvs = h3*v6+h2*v5+h1*v4
640 shvs1 = (ht+h1)*(svs+v4)+shvs+v4*h1
641 shvi1 = (ht+h1)*(svi+v1)+shvi+v1*h1
642 shvs2 = (ht+h2)*(svs+v5)+shvs+v5*h2
643 shvi2 = (ht+h2)*(svi+v2)+shvi+v2*h2
644 shvs3 = (ht+h3)*(svs+v6)+shvs+v6*h3
645 shvi3 = (ht+h3)*(svi+v3)+shvi+v3*h3
646 hv1s3i = shvs1+3*shvi1
647 hv1i3s = shvi1+3*shvs1
649 hv2s3i = shvs2+3*shvi2
650 hv2i3s = shvi2+3*shvs2
652 hv3s3i = shvs3+3*shvi3
653 hv3i3s = shvi3+3*shvs3
659 pz1=-den*(x2*y3-y2*x3)*30
709 t(ielem,1)=t(ielem,1)+px1*hu1s3i+py1*hv1s3i
710 t(ielem,2)=t(ielem,2)+px2*hu2s3i+py2*hv2s3i
711 t(ielem,3)=t(ielem,3)+px3*hu3s3i+py3*hv3s3i
712 t(ielem,4)=t(ielem,4)+px1*hu1i3s+py1*hv1i3s
713 t(ielem,5)=t(ielem,5)+px2*hu2i3s+py2*hv2i3s
714 t(ielem,6)=t(ielem,6)+px3*hu3i3s+py3*hv3i3s
716 xm(ielem,01)=xm(ielem,01)+px2*hu1s3i+py2*hv1s3i
717 xm(ielem,02)=xm(ielem,02)+px3*hu1s3i+py3*hv1s3i
718 xm(ielem,03)=xm(ielem,03)+px1*hu1si +py1*hv1si
719 xm(ielem,04)=xm(ielem,04)+px2*hu1si +py2*hv1si
720 xm(ielem,05)=xm(ielem,05)+px3*hu1si +py3*hv1si
721 xm(ielem,06)=xm(ielem,06)+px3*hu2s3i+py3*hv2s3i
722 xm(ielem,07)=xm(ielem,07)+px1*hu2si +py1*hv2si
723 xm(ielem,08)=xm(ielem,08)+px2*hu2si +py2*hv2si
724 xm(ielem,09)=xm(ielem,09)+px3*hu2si +py3*hv2si
725 xm(ielem,10)=xm(ielem,10)+px1*hu3si +py1*hv3si
726 xm(ielem,11)=xm(ielem,11)+px2*hu3si +py2*hv3si
727 xm(ielem,12)=xm(ielem,12)+px3*hu3si +py3*hv3si
728 xm(ielem,13)=xm(ielem,13)+px2*hu1i3s+py2*hv1i3s
729 xm(ielem,14)=xm(ielem,14)+px3*hu1i3s+py3*hv1i3s
730 xm(ielem,15)=xm(ielem,15)+px3*hu2i3s+py3*hv2i3s
731 xm(ielem,16)=xm(ielem,16)+px1*hu2s3i+py1*hv2s3i
732 xm(ielem,17)=xm(ielem,17)+px1*hu3s3i+py1*hv3s3i
733 xm(ielem,18)=xm(ielem,18)+px1*hu1si +py1*hv1si
734 xm(ielem,19)=xm(ielem,19)+px1*hu2si +py1*hv2si
735 xm(ielem,20)=xm(ielem,20)+px1*hu3si +py1*hv3si
736 xm(ielem,21)=xm(ielem,21)+px2*hu3s3i+py2*hv3s3i
737 xm(ielem,22)=xm(ielem,22)+px2*hu1si +py2*hv1si
738 xm(ielem,23)=xm(ielem,23)+px2*hu2si +py2*hv2si
739 xm(ielem,24)=xm(ielem,24)+px2*hu3si +py2*hv3si
740 xm(ielem,25)=xm(ielem,25)+px3*hu1si +py3*hv1si
741 xm(ielem,26)=xm(ielem,26)+px3*hu2si +py3*hv2si
742 xm(ielem,27)=xm(ielem,27)+px3*hu3si +py3*hv3si
743 xm(ielem,28)=xm(ielem,28)+px1*hu2i3s+py1*hv2i3s
744 xm(ielem,29)=xm(ielem,29)+px1*hu3i3s+py1*hv3i3s
745 xm(ielem,30)=xm(ielem,30)+px2*hu3i3s+py2*hv3i3s
subroutine mt05pp(T, XM, XMUL, SU, SV, SW, U, V, W, F, G, X, Y, Z, IKLE, NELEM, NELMAX, SIGMAG, SPECAD, NPLAN)