35 1 LFT ,LLT ,NFT ,NSEG ,N1 ,
36 2 N2 ,N3 ,NSTRF ,X ,V ,
37 3 FSAV ,IXS ,FOPTA ,SECFCUM ,FX ,
38 4 FY ,FZ ,TYPE ,NSINT ,IFRAM ,
39 5 NNOD ,NOD ,MS ,XSEC ,FBSAV6 ,
41 use element_mod ,
only : nixs
45#include "implicit_f.inc"
60 INTEGER LFT, LLT, NFT, NSEG, N1, N2, N3,
TYPE,NSINT
61 INTEGER NSTRF(2,*),IXS(NIXS,*),IFRAM,NNOD,NOD(*)
63 my_real X(3,*), FSAV(NTHVKI), FOPTA(6), SECFCUM(7,*),XSEC(4,3),
64 . FX(MVSIZ,8), FY(MVSIZ,8), FZ(MVSIZ,8), V(3,*) ,MS(*)
65 DOUBLE PRECISION FBSAV6(12,6)
69 INTEGER JJJ(MVSIZ), UNPACK(0:255,8),
70 . NSA, J, I, K, I1, IPACK, N,POWER2(8),IPERM(6),II
71 my_real fx1(mvsiz), fy1(mvsiz), fz1(mvsiz),
72 . dx1(mvsiz),dy1(mvsiz), dz1(mvsiz),fst(16),
74 . xx4, yy4, zz4, xx5, yy5, zz5, xx6, yy6, zz6, xxn, yyn, zzn,
75 . xxc, yyc, zzc, fsx, fsy, fsz, fn, fsnx, fsny, fsnz, fstx,
76 . fsty, fstz, dmx, dmy, dmz
77 DATA power2/1,2,4,8,16,32,64,128/
78 DATA iperm/1,2,3,5,6,7/
79 my_real,
DIMENSION(:,:),
ALLOCATABLE :: fstparit
82 IF(lft+nft>nstrf(1,nseg))
RETURN
83 IF(llt+nft<nstrf(1,1 ))
RETURN
89 unpack(j,i)=mod(j/power2(i),2)
104 IF(type+nsint==0)
THEN
111 ALLOCATE(fstparit(12,nsa))
121 2 xx4, yy4, zz4, xx5, yy5, zz5, xx6, yy6, zz6,
122 3 xxn, yyn, zzn,ifram,nnod,nod,ms)
125 2 xx5, yy5, zz5, xx6 , yy6 , zz6 ,
126 3 xxn, yyn, zzn, ifram, n1 , xsec)
133 ipack = mod(nstrf(2,j),256)
136 IF(unpack(ipack,i1)/=0)
THEN
141 n = ixs(i1+1,nstrf(1,j))
150 fn=fsx*xxn+fsy*yyn+fsz*zzn
162 msx =dy1(k)*fz1(k)-dz1(k)*fy1(k)
163 msy =dz1(k)*fx1(k)-dx1(k)*fz1(k)
164 msz =dx1(k)*fy1(k)-dy1(k)*fx1(k)
166 dmx =msx*xx4+msy*yy4+msz*zz4
167 dmy =msx*xx5+msy*yy5+msz*zz5
168 dmz =msx*xx6+msy*yy6+msz*zz6
179 fst(10) = fst(10) + fsx
180 fst(11) = fst(11) + fsy
181 fst(12) = fst(12) + fsz
182 fst(13) = fst(13) + msx
183 fst(14) = fst(14) + msy
184 fst(15) = fst(15) + msz
186 . +fx1(k)*v(1,n)+fy1(k)*v(2,n)+fz1(k)*v(3,n)
195 ipack = mod(nstrf(2,j),256)
198 IF(unpack(ipack,i1)/=0)
THEN
203 n = ixs(i1+1,nstrf(1,j))
212 fn=fsx*xxn+fsy*yyn+fsz*zzn
224 msx =dy1(k)*fz1(k)-dz1(k)*fy1(k)
225 msy =dz1(k)*fx1(k)-dx1(k)*fz1(k)
226 msz =dx1(k)*fy1(k)-dy1(k)*fx1(k)
228 dmx =msx*xx4+msy*yy4+msz*zz4
229 dmy =msx*xx5+msy*yy5+msz*zz5
230 dmz =msx*xx6+msy*yy6+msz*zz6
241 fst(10) = fst(10) + fsx
242 fst(11) = fst(11) + fsy
243 fst(12) = fst(12) + fsz
244 fst(13) = fst(13) + msx
245 fst(14) = fst(14) + msy
246 fst(15) = fst(15) + msz
248 . +fx1(k)*v(1,n)+fy1(k)*v(2,n)+fz1(k)*v(3,n)
250 fstparit(1,k)=fstparit(1,k)+fsnx
251 fstparit(2,k)=fstparit(2,k)+fsny
252 fstparit(3,k)=fstparit(3,k)+fsnz
253 fstparit(4,k)=fstparit(4,k)+fstx
254 fstparit(5,k)=fstparit(5,k)+fsty
255 fstparit(6,k)=fstparit(6,k)+fstz
256 fstparit(7,k)=fstparit(7,k)+msx
257 fstparit(8,k)=fstparit(8,k)+msy
258 fstparit(9,k)=fstparit(9,k)+msz
259 fstparit(10,k)=fstparit(10,k) +
260 . ( xx4*(fsnx+fstx) +
263 fstparit(11,k)=fstparit(11,k) +
264 . ( xx5*(fsnx+fstx) +
267 fstparit(12,k)=fstparit(12,k) +
268 . ( xx6*(fsnx+fstx) +
281 fsav(1)=fsav(1)+dt12*fst(1)
282 fsav(2)=fsav(2)+dt12*fst(2)
283 fsav(3)=fsav(3)+dt12*fst(3)
284 fsav(4)=fsav(4)+dt12*fst(4)
285 fsav(5)=fsav(5)+dt12*fst(5)
286 fsav(6)=fsav(6)+dt12*fst(6)
287 fsav(7)=fsav(7)+dt12*fst(7)
288 fsav(8)=fsav(8)+dt12*fst(8)
289 fsav(9)=fsav(9)+dt12*fst(9)
290 fsav(10)=fsav(10)+dt12*fst(16)
291 fsav(31)=fsav(31)+dt12*fst(13)
292 fsav(32)=fsav(32)+dt12*fst(14)
293 fsav(33)=fsav(33)+dt12*fst(15)
294 fsav(34)=fsav(34) + dt12* (xx4*(fst(1)+fst(4)) +
295 . yy4*(fst(2)+fst(5)) + zz4*(fst(3)+fst(6)))
296 fsav(35)=fsav(35) + dt12* (xx5*(fst(1)+fst(4)) +
297 . yy5*(fst(2)+fst(5)) + zz5*(fst(3)
298 fsav(36)=fsav(36) + dt12* (xx6*(fst(1)+fst(4)) +
299 . yy6*(fst(2)+fst(5)) + zz6*(fst(3)+fst(6)))
303 fopta(1) = fopta(1) + fst(10)
304 fopta(2) = fopta(2) + fst(11)
305 fopta(3) = fopta(3) + fst(12)
306 fopta(4) = fopta(4) + fst(13)
307 fopta(5) = fopta(5) + fst(14)
308 fopta(6) = fopta(6) + fst(15)
309#include "lockoff.inc"
320 ipack = mod(nstrf(2,j),256)
321 IF(unpack(ipack,i1)/=0)
THEN
322 n = ixs(i1+1,nstrf(1,j))
323 secfcum(1,n)=secfcum(1,n)- fx(i,ii)
324 secfcum(2,n)=secfcum(2,n)- fy(i,ii)
325 secfcum(3,n)=secfcum(3,n)- fz(i,ii)
329#include "lockoff.inc"