33 SUBROUTINE fsigpini(FXBELM, IPARG , X , PM, IXP ,
34 . GEO , FXBMOD, FXBSIG, R , NELP,
35 . IBEAM_VECTOR,RBEAM_VECTOR)
39#include "implicit_f.inc"
51 INTEGER FXBELM(*), IPARG(NPARG,*), IXP(NIXP,*), NELP
52 INTEGER,
INTENT (IN ) :: IBEAM_VECTOR(NELP)
54 . x(3,*), pm(npropm,*), geo(npropg,*), fxbmod(*),
56 my_real ,
INTENT (IN ) :: rbeam_vector(3,nelp)
60 INTEGER IG, OFFSET, LAST, NFT, NFS, I, NG, IEL,
62 INTEGER MAT(MVSIZ), PROP(MVSIZ)
64 . ee1x(mvsiz), ee1y(mvsiz), ee1z(mvsiz),
65 . ee2x(mvsiz), ee2y(mvsiz), ee2z(mvsiz),
66 . ee3x(mvsiz), ee3y(mvsiz), ee3z(mvsiz)
68 . vl(3,2,mvsiz), vrl(3,2,mvsiz)
70 . x1(mvsiz), y1(mvsiz), z1(mvsiz),
71 . x2(mvsiz), y2(mvsiz), z2(mvsiz),
72 . x3(mvsiz), y3(mvsiz), z3(mvsiz)
74 . e2x, e2y, e2z, ee2, rloc(3,mvsiz),
75 . d11, d12, d13, d21, d22, d23,
76 . dr11, dr12, dr13, dr21, dr22, dr23,
79 .
for(3,mvsiz), mom(3,mvsiz), eint(2,mvsiz),
80 . exx(mvsiz), exy(mvsiz), exz(mvsiz),
81 . kxx(mvsiz), kyy(mvsiz), kzz(mvsiz)
86 last=
min(mvsiz,nelp-offset)
90 ng=fxbelm(nft+9*(i-1)+1)
91 iel=iparg(3,ng)+fxbelm(nft+9*(i-1)+2)
100 x3(i)=x(1,ixp(4,iel))
101 y3(i)=x(2,ixp(4,iel))
102 z3(i)=x(3,ixp(4,iel))
103 IF (ibeam_vector(iel) > 1)
THEN
104 e2x=rbeam_vector(1,iel)
105 e2y=rbeam_vector(2,iel)
106 e2z=rbeam_vector(3,iel)
112 ee2=sqrt(e2x**2+e2y**2+e2z**2)
116 n1=fxbelm(nft+9*(i-1)+3)
117 n2=fxbelm(nft+9*(i-1)+4)
118 d11=fxbmod(6*(n1-1)+1)
119 d12=fxbmod(6*(n1-1)+2)
120 d13=fxbmod(6*(n1-1)+3)
121 d21=fxbmod(6*(n2-1)+1)
122 d22=fxbmod(6*(n2-1)+2)
123 d23=fxbmod(6*(n2-1)+3)
124 vl(1,1,i)=r(1,1)*d11+r(1,2)*d12+r(1,3)*d13
125 vl(2,1,i)=r(2,1)*d11+r(2,2)*d12+r(2,3)*d13
126 vl(3,1,i)=r(3,1)*d11+r(3,2)*d12+r(3,3)*d13
127 vl(1,2,i)=r(1,1)*d21+r(1,2)*d22+r(1,3)*d23
128 vl(2,2,i)=r(2,1)*d21+r(2,2)*d22+r(2,3)*d23
129 vl(3,2,i)=r(3,1)*d21+r(3,2)*d22+r(3,3)*d23
130 dr11=fxbmod(6*(n1-1)+4)
131 dr12=fxbmod(6*(n1-1)+5)
132 dr13=fxbmod(6*(n1-1)+6)
133 dr21=fxbmod(6*(n2-1)+4)
134 dr22=fxbmod(6*(n2-1)+5)
135 dr23=fxbmod(6*(n2-1)+6)
136 vrl(1,1,i)=r(1,1)*dr11+r(1,2)*dr12+r(1,3)*dr13
137 vrl(2,1,i)=r(2,1)*dr11+r(2,2)*dr12+r(2,3)*dr13
138 vrl(3,1,i)=r(3,1)*dr11+r(3,2)*dr12+r(3,3)*dr13
139 vrl(1,2,i)=r(1,1)*dr21+r(1,2)*dr22+r(1,3)*dr23
140 vrl(2,2,i)=r(2,1)*dr21+r(2,2)*dr22+r(2,3)*dr23
141 vrl(3,2,i)=r(3,1)*dr21+r(3,2)*dr22+r(3,3)*dr23
150 CALL pevecii(x1, y1, z1, x2, y2,
151 . z2, vrl, rloc, al, last,
156 CALL pdefoi(vl , exx , exy, exz, al, last,
160 CALL pcurvi(vrl, geo , kxx , kyy , kzz ,
161 . exy , exz , al , last, prop,
167 . exx, exy, exz , kxx , kyy,
168 . kzz, al , last, mat , prop)
171 fxbsig(nfs+8*(i-1)+1)=
for(1,i)
172 fxbsig(nfs+8*(i-1)+2)=
for(2,i)
173 fxbsig(nfs+8*(i-1)+3)=
for(3,i)
174 fxbsig(nfs+8*(i-1)+4)=mom(1,i)
175 fxbsig(nfs+8*(i-1)+5)=mom(2,i)
176 fxbsig(nfs+8*(i-1)+6)=mom(3,i)
177 fxbsig(nfs+8*(i-1)+7)=eint(1,i)
178 fxbsig(nfs+8*(i-1)+8)=eint(2,i)
190 . Z2 , R , RLOC, AL, NEL,
197#include "implicit_f.inc"
201#include "mvsiz_p.inc"
207 . X1(*), Y1(*), Z1(*), X2(*), Y2(*), Z2(*),
208 . R(3,2,*), RLOC(3,*), AL(*),
209 . E1X(*), E1Y(*), E1Z(*),
210 . E2X(*), E2Y(*), E2Z(*),
211 . e3x(*), e3y(*), e3z(*)
217 . RX1G(MVSIZ), RY1G(MVSIZ), RZ1G(MVSIZ),
218 . RX2G(MVSIZ), RY2G(MVSIZ), RZ2G(MVSIZ),
221 . theta, sum2(mvsiz), sum3(mvsiz), sum(mvsiz),
222 . cost(mvsiz), sint(mvsiz)
247 al(i)=sqrt(e1x(i)**2+e1y(i)**2+e1z(i)**2)
257 e3x(i)=e1y(i)*e2z(i)-e1z(i)*e2y(i)
258 e3y(i)=e1z(i)*e2x(i)-e1x(i)*e2z(i)
259 e3z(i)=e1x(i)*e2y(i)-e1y(i)*e2x(i)
263 e2x(i)=e3y(i)*e1z(i)-e3z(i)*e1y(i)
264 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
265 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
271 rx1(i)=e1x(i)*rx1g(i)+e1y(i)*ry1g(i)+e1z(i)*rz1g(i)
272 rx2(i)=e1x(i)*rx2g(i)+e1y(i)*ry2g(i)+e1z(i)*rz2g(i)
273 theta=half*(rx1(i)+rx2(i))
274 sum2(i)=sqrt(e2x(i)**2+e2y(i)**2+e2z(i)**2)
275 sum3(i)=sqrt(e3x(i)**2+e3y(i)**2+e3z(i)**2)
276 cost(i)=cos(theta)/sum2(i)
277 sint(i)=sin(theta)/sum3(i)
281 e2x(i)=e2x(i)*cost(i)+e3x(i)*sint(i)
282 e2y(i)=e2y(i)*cost(i)+e3y(i)*sint(i)
283 e2z(i)=e2z(i)*cost(i)+e3z(i)*sint(i)
287 sum(i)=sqrt(e2x(i)**2+e2y(i)**2+e2z(i)**2)
297 e3x(i)=e1y(i)*e2z(i)-e1z(i)*e2y(i)
298 e3y(i)=e1z(i)*e2x(i)-e1x(i)*e2z(i)
299 e3z(i)=e1x(i)*e2y(i)-e1y(i)*e2x(i)
303 sum(i)=sqrt(e3x(i)**2+e3y(i)**2+e3z(i)**2)
316 SUBROUTINE pdefoi(V , EXX, EXY, EXZ, AL, NEL,
323#include "implicit_f.inc"
327#include "mvsiz_p.inc"
333 . V(3,2,*), EXX(*), EXY(*), (*), AL(*),
334 . E1X(*), E1Y(*), E1Z(*),
335 . E2X(*), E2Y(*), E2Z(*),
336 . E3X(*), E3Y(*), E3Z(*)
342 . vx1g(mvsiz), vy1g(mvsiz), vz1g(mvsiz),
343 . vx2g(mvsiz), vy2g(mvsiz), vz2g(mvsiz),
344 . vx1(mvsiz), vy1(mvsiz), vz1(mvsiz),
345 . vx2(mvsiz), vy2(mvsiz), vz2(mvsiz)
357 vx1(i)=e1x(i)*vx1g(i)+e1y(i)*vy1g(i)+e1z(i)*vz1g(i)
358 vy1(i)=e2x(i)*vx1g(i)+e2y(i)*vy1g(i)+e2z(i)*vz1g(i)
359 vz1(i)=e3x(i)*vx1g(i)+e3y(i)*vy1g(i)+e3z(i)*vz1g(i)
360 vx2(i)=e1x(i)*vx2g(i)+e1y(i)*vy2g(i)+e1z(i)*vz2g(i)
361 vy2(i)=e2x(i)*vx2g(i)+e2y(i)*vy2g(i)+e2z(i)*vz2g(i)
362 vz2(i)=e3x(i)*vx2g(i)+e3y(i)*vy2g(i)+e3z(i)*vz2g(i)
366 exx(i)=(vx2(i)-vx1(i))/al(i)
367 exy(i)=(vy2(i)-vy1(i))/al(i)
368 exz(i)=(vz2(i)-vz1(i))/al(i)
378 SUBROUTINE pcurvi(V , GEO, KXX, KYY, KZZ,
379 . EXY, EXZ, AL , NEL, MGM,
386#include "implicit_f.inc"
390#include "mvsiz_p.inc"
394#include "param_c.inc"
398 INTEGER :: NEL, MGM(*)
400 . V(3,2,*), GEO(NPROPG,*), KXX(*), KYY(*), KZZ(*),
401 . EXY(*), EXZ(*), AL(*),
402 . E1X(*), E1Y(*), E1Z(*),
403 . E2X(*), E2Y(*), E2Z(*),
404 . E3X(*), E3Y(*), E3Z(*)
408 INTEGER I, IG, IRX, IR1Y, IR1Z, IR2Y, IR2Z, IRY, IRZ
410 . RX1G(MVSIZ), RY1G(MVSIZ), RZ1G(MVSIZ),
411 . rx2g(mvsiz), ry2g(mvsiz), rz2g(mvsiz),
412 . rx1(mvsiz), ry1(mvsiz), rz1(mvsiz),
413 . rx2(mvsiz), ry2(mvsiz), rz2(mvsiz),
414 . rxav(mvsiz), ryav(mvsiz), rzav(mvsiz)
426 rx1(i)=e1x(i)*rx1g(i)+e1y(i)*ry1g(i)+e1z(i)*rz1g(i)
427 ry1(i)=e2x(i)*rx1g(i)+e2y(i)*ry1g(i)+e2z(i)*rz1g(i)
428 rz1(i)=e3x(i)*rx1g(i)+e3y(i)*ry1g(i)+e3z(i)*rz1g(i)
429 rx2(i)=e1x(i)*rx2g(i)+e1y(i)*ry2g(i)+e1z(i)*rz2g(i)
430 ry2(i)=e2x(i)*rx2g(i)+e2y(i)*ry2g(i)+e2z(i)*rz2g(i)
431 rz2(i)=e3x(i)*rx2g(i)+e3y(i)*ry2g(i)+e3z(i)*rz2g(i)
438 irx =nint(geo(7 ,ig))
439 ir1y=nint(geo(8 ,ig))
440 ir1z=nint(geo(9 ,ig))
441 ir2y=nint(geo(10,ig))
442 ir2z=nint(geo(11,ig))
443 iry =
min(1,ir1y+ir2y)
444 irz =
min(1,ir1z+ir2z)
454 + -(one -ir1y)*(three_half*exz(i)+half*ry2(i))
456 + -(one -ir2y)*(three_half*exz(i)+half*ry1(i))
458 + +(one-ir1z)*(three_half*exy(i)-half*rz2(i))
460 + +(one -ir2z)*(three_half*exy(i)-half*rz1(i))
464 kxx(i)=(rx2(i)-rx1(i))/al(i)
465 kyy(i)=(ry2(i)-ry1(i))/al(i)
466 kzz(i)=(rz2(i)-rz1(i))/al(i)
470 rxav(i)=rx1(i)+rx2(i)
471 rzav(i)=rz1(i)+rz2(i)
472 ryav(i)=ry1(i)+ry2(i)
476 exz(i)=exz(i) + half*ryav(i)
477 exy(i)=exy(i) - half*rzav(i)
488 . EXX, EXY, EXZ, KXX , KYY,
489 . KZZ, AL , NEL, MAT , MGM)
493#include "implicit_f.inc"
497#include "mvsiz_p.inc"
501#include "param_c.inc"
505 INTEGER :: , MAT(*), MGM(*)
507 . PM(,*), FOR(3,*), (3,*), EINT(2,*),
508 . GEO(NPROPG(*), EXZ(*), KXX(*),
509 . KYY(*), KZZ(*), AL(*)
515 . RHO(MVSIZ), G(MVSIZ), YM(MVSIZ), A1(MVSIZ), B1(MVSIZ),
516 . B2(), B3(MVSIZ), SHF(MVSIZ), SH(MVSIZ),
517 . YMA2(MVSIZ), SH10(), SH20(MVSIZ), SH0(MVSIZ),
518 . SH1(MVSIZ), SH2(MVSIZ), DEGMB(MVSIZ), DEGFX(MVSIZ)
521 rho(i) =pm( 1,mat(i))
526 b2(i) =geo(18,mgm(i))
528 shf(i) =geo(37,mgm(i))
533 sh(i)=five_over_6*g(i)*a1(i)
534 yma2(i)=twelve*ym(i)/al(i)**2
535 sh10(i)=yma2(i)*b1(i)
536 sh20(i)=yma2(i)*b2(i)
537 sh0(i)=(one-shf(i))*sh(i)
538 sh1(i)=sh0(i)*sh10(i)/(sh(i)+sh10(i)) + shf(i)*sh10(i)
539 sh2(i)=sh0(i)*sh20(i)/(sh(i)+sh20(i)) + shf(i)*sh20(i)
541 for(1,i)=for(1,i)+ exx(i)*a1(i)*ym(i)
542 for(2,i)=for(2,i)+ exy(i)*sh2(i)
543 for(3,i)=for(3,i)+ exz(i)*sh1(i)
544 mom(1,i)=mom(1,i)+ kxx(i)*g(i)*b3(i)
545 mom(2,i)=mom(2,i)+ kyy(i)*ym(i)*b1(i)
546 mom(3,i)=mom(3,i)+ kzz(i)*ym(i)*b2(i)
550 degmb(i) = for(1,i)*exx(i)+for(2,i)*exy(i)+for(3,i)*exz(i)
551 degfx(i) = mom(1,i)*kxx(i)+mom(2,i)*kyy(i)+mom(3,i)*kzz(i)
555 eint(1,i) = degmb(i)*al(i)*half
556 eint(2,i) = degfx(i)*al(i)*half