35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "mvsiz_p.inc"
43
44
45
46 INTEGER JFT, JLT,NUVAR,NC1(*),NC2(*)
47
49 . f(3,*), forx(*), fory(*), forz(*), xm(3,*), xmom(*),
50 . ymom(*), zmom(*), sti(3,*),stir(3,*),stifn(*),stifr(*),
51 . fx1(*) ,fx2(*) ,fy1(*), fy2(*) ,fz1(*) ,
52 . fz2(*), mx1(*) ,mx2(*) ,my1(*), my2(*) ,mz1(*) ,
53 . mz2(*),uvar(nuvar,*)
54 DOUBLE PRECISION XL(MVSIZ,3)
55
56
57
58 INTEGER I, J
59 my_real f11(mvsiz), f21(mvsiz), f31(mvsiz),
60 . m11(mvsiz), m21(mvsiz), m31(mvsiz),
61 . m12(mvsiz), m22(mvsiz), m32(mvsiz),
62 . xmom1, xmom2, ymom1, ymom2, zmom1, zmom2, m1,m2,m3,
63 . ex(9), xx
64
65
66
67
68 DO i=jft,jlt
69 DO j=1,9
70 ex(j) = uvar(21+j,i)
71 ENDDO
72 f11(i)=ex(1)*forx(i)+ex(4)*fory(i)+ex(7)*forz(i)
73 f21(i)=ex(2)*forx(i)+ex(5)*fory(i)+ex(8)*forz(i)
74 f31(i)=ex(3)*forx(i)+ex(6)*fory(i)+ex(9)*forz(i)
75 ENDDO
76
77
78 DO i=jft,jlt
79 f(1,nc1(i))=f(1,nc1(i))+f11(i)
80 f(2,nc1(i))=f(2,nc1(i))+f21(i)
81 f(3,nc1(i))=f(3,nc1(i))+f31(i)
82 fx1(i) = -f11(i)
83 fy1(i) = -f21(i)
84 fz1(i) = -f31(i)
85 stifn(nc1(i))=stifn(nc1(i))+two*sti(1,i)
86 f(1,nc2(i))=f(1,nc2(i))-f11(i)
87 f(2,nc2(i))=f(2,nc2(i))-f21(i)
88 f(3,nc2(i))=f(3,nc2(i))-f31(i)
89 fx2(i) = f11(i)
90 fy2(i) = f21(i)
91 fz2(i) = f31(i)
92 stifn(nc2(i))=stifn(nc2(i))+two*sti(2,i)
93 ENDDO
94
95
96
97
98
99 DO i=jft,jlt
100
101 DO j=1,9
102 ex(j) = uvar(21+j,i)
103 END DO
104 m1 = half*(xl(i,2)*forz(i)-xl(i,3)*fory(i))
105 m2 = half*(xl
106 m3 = half*(xl(i,1)*fory(i)-xl(i,2)*forx(i))
107 xmom1 = xmom(i) + m1
108 ymom1 = ymom(i) + m2
109 zmom1 = zmom(i) + m3
110 m11(i)=ex(1)*xmom1+ex(4)*ymom1+ex(7)*zmom1
111 m21(i)=ex(2)*xmom1+ex(5)*ymom1+ex(8)*zmom1
112 m31(i)=ex(3)*xmom1+ex(6)*ymom1+ex(9)*zmom1
113
114 xmom2 = xmom(i) - m1
115 ymom2 = ymom(i) - m2
116 zmom2 = zmom(i) - m3
117 m12(i)=ex(1)*xmom2+ex(4)*ymom2+ex(7)*zmom2
118 m22(i)=ex(2)*xmom2+ex(5)*ymom2+ex(8)*zmom2
119 m32(i)=ex(3)*xmom2+ex(6)*ymom2+ex(9)*zmom2
120
121 xx = xl(i,1)*xl(i,1) + xl(i,2)*xl(i,2) + xl(i,3)*xl(i,3)
122 stir(1,i) = stir(1,i) + sti(2,i)*xx
123 stir(2,i) = stir(2,i) + sti(1,i)*xx
124 ENDDO
125
126
127 DO i=jft,jlt
128 xm(1,nc1(i))=xm(1,nc1(i))+m11(i)
129 xm(2,nc1(i))=xm(2,nc1(i))+m21(i)
130 xm(3,nc1(i))=xm(3,nc1(i))+m31(i)
131 mx1(i) = -m11(i)
132 my1(i) = -m21(i)
133 mz1(i) = -m31(i)
134 stifr(nc1(i))=stifr(nc1(i))+stir(1,i)
135 xm(1,nc2(i))=xm(1,nc2(i))-m12(i)
136 xm(2,nc2(i))=xm(2,nc2(i))-m22(i)
137 xm(3,nc2(i))=xm(3,nc2(i))-m32(i)
138 mx2(i) = m12(i)
139 my2(i) = m22(i)
140 mz2(i) = m32(i)
141 stifr(nc2(i))=stifr(nc2(i))+stir(2,i)
142 ENDDO
143
144 RETURN