35 2 N2,N3,NSTRF,X,V,VR,FSAV,
38 5 TYPE,NSINT,IFRAM,NNOD,NOD,MS,
39 7 XSEC,FBSAV6,IPARSENS)
40 use element_mod ,
only : nixc
44#include "implicit_f.inc"
61 INTEGER LFT, LLT, NFT, NSEG, N1, N2, N3,
63 INTEGER NSTRF(2,*),IXC(NIXC,*),IFRAM,NNOD,NOD(*)
65 . X(3,*), FSAV(NTHVKI), FOPTA(6), SECFCUM(7,*),
66 . v(3,*), vr(3,*),ms(*),xsec(4,3)
67 DOUBLE PRECISION FBSAV6(12,6)
71 INTEGER JJJ(MVSIZ), UNPACK(0:15,4),
72 . nsa, j, i, k, i1, i2, ipack, n, jj
74 . fx(mvsiz,4), fy(mvsiz,4), fz(mvsiz,4), mx(mvsiz,4),
75 . my(mvsiz,4), mz(mvsiz,4), fx1(mvsiz), fy1(mvsiz), fz1(mvsiz),
76 . mx1(mvsiz), my1(mvsiz), mz1(mvsiz), dx1(mvsiz),
77 . dy1(mvsiz), dz1(mvsiz),fst(16), dx11, dy11, dz11,
78 . msx, msy, msz, xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3,
79 . xx4, yy4, zz4, xx5, yy5, zz5, xx6, yy6, zz6, xxn, yyn, zzn,
80 . d13, xxc, yyc, zzc, fsx, fsy, fsz, fn, fsnx, fsny, fsnz, fstx,
81 . fsty, fstz, dmx, dmy, dmz
83 . msxphi, msyphi, mszphi, fsxphi,
84 . fsyphi, fszphi, fnphi, fsnxphi, fsnyphi, fsnzphi, fstxphi,
85 . fstyphi, fstzphi, dmxphi, dmyphi, dmzphi
87 . xx1phi,xx3phi,xx4phi,xx5phi,xx6phi
89 . yy1phi,yy3phi,yy4phi,yy5phi,yy6phi
91 . zz1phi,zz3phi,zz4phi,zz5phi,zz6phi
93 . al4phi,al5phi,al6phi,xx5t,yy5t,zz5t
96 my_real,
DIMENSION(:,:),
ALLOCATABLE :: fstparit
99 DATA unpack/0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
100 . 0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,
101 . 0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,
102 . 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1/
106 IF(lft+nft>nstrf(1,nseg))
RETURN
107 IF(llt+nft<nstrf(1,1 ))
RETURN
124 IF (lft<=i.AND.llt>=i)
THEN
132 IF (lft<=i.AND.llt>=i)
THEN
142 IF(type+nsint==0)
THEN
145 ALLOCATE(fstparit(12,nsa))
159 2 xx4, yy4, zz4, xx5, yy5, zz5, xx6, yy6, zz6,
160 3 xxn, yyn, zzn,ifram,nnod,nod,ms)
163 2 xx5, yy5, zz5, xx6 , yy6 , zz6 ,
164 3 xxn, yyn, zzn, ifram, n1 , xsec)
168 IF((iparsens==0))
THEN
169 IF (nsa>15.OR.ivector==0)
THEN
175 IF(unpack(ipack,i1)/=0)
THEN
177 n = ixc(i1+1,nstrf(1,j))
186 fn=fsx*xxn+fsy*yyn+fsz*zzn
198 msx =dy11*fsz-dz11*fsy
199 msy =dz11*fsx-dx11*fsz
200 msz =dx11*fsy-dy11*fsx
206 dmx =msx*xx4+msy*yy4+msz*zz4
207 dmy =msx*xx5+msy*yy5+msz*zz5
208 dmz =msx*xx6+msy*yy6+msz*zz6
219 fst(10) = fst(10) + fsx
220 fst(11) = fst(11) + fsy
221 fst(12) = fst(12) + fsz
222 fst(13) = fst(13) + msx
223 fst(14) = fst(14) + msy
224 fst(15) = fst(15) + msz
226 . +fsx*v(1,n) +fsy*v(2,n) +fsz*v(3,n)
227 . +msx*vr(1,n)+msy*vr(2,n)+msz*vr(3,n)
238 IF(unpack(ipack,i1)/=0)
THEN
239 n = ixc(i1+1,nstrf(1,j))
249 fn=fsx*xxn+fsy*yyn+fsz*zzn
261 msx =dy11*fsz-dz11*fsy
262 msy =dz11*fsx-dx11*fsz
263 msz =dx11*fsy-dy11*fsx
269 dmx =msx*xx4+msy*yy4+msz*zz4
270 dmy =msx*xx5+msy*yy5+msz*zz5
271 dmz =msx*xx6+msy*yy6+msz*zz6
282 fst(10) = fst(10) + fsx
283 fst(11) = fst(11) + fsy
284 fst(12) = fst(12) + fsz
285 fst(13) = fst(13) + msx
286 fst(14) = fst(14) + msy
287 fst(15) = fst(15) + msz
289 . +fsx*v(1,n) +fsy*v(2,n) +fsz*v(3,n)
290 . +msx*vr(1,n)+msy*vr(2,n)+msz*vr(3,n)
296 IF (nsa>15.OR.ivector==0)
THEN
302 IF(unpack(ipack,i1)/=0)
THEN
304 n = ixc(i1+1,nstrf(1,j))
313 fn=fsx*xxn+fsy*yyn+fsz*zzn
325 msx =dy11*fsz-dz11*fsy
326 msy =dz11*fsx-dx11*fsz
327 msz =dx11*fsy-dy11*fsx
333 dmx =msx*xx4+msy*yy4+msz*zz4
334 dmy =msx*xx5+msy*yy5+msz*zz5
335 dmz =msx*xx6+msy*yy6+msz*zz6
346 fst(10) = fst(10) + fsx
347 fst(11) = fst(11) + fsy
348 fst(12) = fst(12) + fsz
349 fst(13) = fst(13) + msx
350 fst(14) = fst(14) + msy
351 fst(15) = fst(15) + msz
353 . +fsx*v(1,n) +fsy*v(2,n) +fsz*v(3,n)
354 . +msx*vr(1,n)+msy*vr(2,n)+msz*vr(3,n)
356 fstparit(1,k)=fstparit(1,k)+fsnx
357 fstparit(2,k)=fstparit(2,k)+fsny
358 fstparit(3,k)=fstparit(3,k)+fsnz
359 fstparit(4,k)=fstparit(4,k)+fstx
360 fstparit(5,k)=fstparit(5,k)+fsty
361 fstparit(6,k)=fstparit(6,k)+fstz
362 fstparit(7,k)=fstparit(7,k)+msx
363 fstparit(8,k)=fstparit(8,k)+msy
364 fstparit(9,k)=fstparit(9,k)+msz
365 fstparit(10,k)=fstparit(10,k) +
366 . ( xx4*(fsnx+fstx) +
369 fstparit(11,k)=fstparit(11,k) +
370 . ( xx5*(fsnx+fstx) +
373 fstparit(12,k)=fstparit(12,k) +
374 . ( xx6*(fsnx+fstx) +
390 IF(unpack(ipack,i1)/=0)
THEN
391 n = ixc(i1+1,nstrf(1,j))
401 fn=fsx*xxn+fsy*yyn+fsz*zzn
413 msx =dy11*fsz-dz11*fsy
414 msy =dz11*fsx-dx11*fsz
415 msz =dx11*fsy-dy11*fsx
421 dmx =msx*xx4+msy*yy4+msz*zz4
422 dmy =msx*xx5+msy*yy5+msz*zz5
423 dmz =msx*xx6+msy*yy6+msz*zz6
434 fst(10) = fst(10) + fsx
435 fst(11) = fst(11) + fsy
436 fst(12) = fst(12) + fsz
437 fst(13) = fst(13) + msx
438 fst(14) = fst(14) + msy
439 fst(15) = fst(15) + msz
441 . +fsx*v(1,n) +fsy*v(2,n) +fsz*v(3,n)
442 . +msx*vr(1,n)+msy*vr(2,n)+msz*vr(3,n)
444 fstparit(1,k)=fstparit(1,k)+fsnx
445 fstparit(2,k)=fstparit(2,k)+fsny
446 fstparit(3,k)=fstparit(3,k)+fsnz
447 fstparit(4,k)=fstparit(4,k)+fstx
448 fstparit(5,k)=fstparit(5,k)+fsty
449 fstparit(6,k)=fstparit(6,k)+fstz
450 fstparit(7,k)=fstparit(7,k)+msx
451 fstparit(8,k)=fstparit(8,k)+msy
452 fstparit(9,k)=fstparit(9,k)+msz
453 fstparit(10,k)=fstparit(10,k) +
454 . ( xx4*(fsnx+fstx) +
457 fstparit(11,k)=fstparit(11,k) +
458 . ( xx5*(fsnx+fstx) +
461 fstparit(12,k)=fstparit(12,k) +
462 . ( xx6*(fsnx+fstx) +
475 fsav(1)=fsav(1)+dt12*fst(1)
476 fsav(2)=fsav(2)+dt12*fst(2)
477 fsav(3)=fsav(3)+dt12*fst(3)
478 fsav(4)=fsav(4)+dt12*fst(4)
479 fsav(5)=fsav(5)+dt12*fst(5)
480 fsav(6)=fsav(6)+dt12*fst(6)
481 fsav(7)=fsav(7)+dt12*fst(7)
482 fsav(8)=fsav(8)+dt12*fst(8)
483 fsav(9)=fsav(9)+dt12*fst(9)
484 fsav(10)=fsav(10)+dt12*fst(16)
485 fsav(31)=fsav(31)+dt12*fst(13)
486 fsav(32)=fsav(32)+dt12*fst(14)
487 fsav(33)=fsav(33)+dt12*fst(15)
488 fsav(34)=fsav(34) + dt12* (xx4*(fst(1)+fst(4)) +
489 . yy4*(fst(2)+fst(5)) + zz4*(fst(3)+fst(6)))
490 fsav(35)=fsav(35) + dt12* (xx5*(fst(1)+fst(4)) +
491 . yy5*(fst(2)+fst(5)) + zz5*(fst(3)+fst(6)))
492 fsav(36)=fsav(36) + dt12* (xx6*(fst(1)+fst(4)) +
493 . yy6*(fst(2)+fst(5)) + zz6*(fst(3)+fst(6)))
497 fopta(1) = fopta(1) + fst(10)
498 fopta(2) = fopta(2) + fst(11)
499 fopta(3) = fopta(3) + fst(12)
500 fopta(4) = fopta(4) + fst(13)
501 fopta(5) = fopta(5) + fst(14)
502 fopta(6) = fopta(6) + fst(15)
503#include "lockoff.inc"
513 IF(unpack(ipack,i1)/=0)
THEN
514 n = ixc(i1+1,nstrf(1,j))
515 secfcum(1,n)=secfcum(1,n)+fx(i,i1)
516 secfcum(2,n)=secfcum(2,n)+fy(i,i1)
517 secfcum(3,n)=secfcum(3,n)+fz(i,i1)
518 secfcum(5,n)=secfcum(5,n)+mx(i,i1)
519 secfcum(6,n)=secfcum(6,n)+my(i,i1)
520 secfcum(7,n)=secfcum(7,n)+mz(i,i1)
524#include "lockoff.inc"
527 IF((nsa/=0).AND.(iparsens/=0))
THEN