39
40
41
42#include "implicit_f.inc"
43#include "comlock.inc"
44
45
46
47#include "mvsiz_p.inc"
48
49
50
51#include "parit_c.inc"
52
53
54
55 INTEGER, INTENT(IN) :: NEL
56 INTEGER, INTENT(IN) :: NFT
57 INTEGER IADR(3,*)
58
60 . forx(*), fory(*), forz(*), xmom(*),
61 . ymom(*),zmom(*),sti(3,*),stir(3,*),fskyv(lsky,8),
62 . fsky(8,lsky),
63 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
64 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
65 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
66 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),
67 . mom1y(mvsiz),mom1z(mvsiz),
68 . exx(mvsiz), eyx(mvsiz), ezx(mvsiz),
69 . exy(mvsiz), eyy(mvsiz), ezy(mvsiz),
70 . exz(mvsiz), eyz(mvsiz), ezz(mvsiz),al(mvsiz)
71
72
73
74 INTEGER , II, N
75
77 . f11(mvsiz), f21(mvsiz), f31(mvsiz),
78 . m11(mvsiz), m21(mvsiz), m31(mvsiz),
79 . m12(mvsiz), m22(mvsiz), m32(mvsiz),
80 . ymom1, ymom2, zmom1, zmom2
81
82 DO i=1,nel
83 f11(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
84 f21(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
85 f31(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
86 ENDDO
87
88
89
90 IF (ivector == 1) THEN
91#include "vectorize.inc"
92 DO i=1,nel
93 ii = i+nft
94 n = iadr(1,ii)
95 fskyv(n,1)=f11(i)
96 fskyv(n,2)=f21(i)
97 fskyv(n,3)=f31(i)
98 fx1(i) = -f11(i)
99 fy1(i) = -f21(i)
100 fz1(i) = -f31(i)
101 fskyv(n,7)=sti(1,i)
102 n = iadr(2,ii)
103 fskyv(n,1)=-f11(i)
104 fskyv(n,2)=-f21(i)
105 fskyv(n,3)=-f31(i)
106 fx2(i) = f11(i)
107 fy2(i) = f21(i)
108 fz2(i) = f31(i)
109 fskyv(n,7)=sti(2,i)
110 ENDDO
111 ELSE
112 DO i=1,nel
113 ii = i+nft
114 n = iadr(1,ii)
115 fsky(1,n)=f11(i)
116 fsky(2,n)=f21(i)
117 fsky(3,n)=f31(i)
118 fx1(i) = -f11(i)
119 fy1(i) = -f21(i)
120 fz1(i) = -f31(i)
121 fsky(7,n)=sti(1,i)
122 n = iadr(2,ii)
123 fsky(1,n)=-f11(i)
124 fsky(2,n)=-f21(i)
125 fsky(3,n)=-f31(i)
126 fx2(i) = f11(i)
127 fy2(i) = f21(i)
128 fz2(i) = f31(i)
129 fsky(7,n)=sti(2,i)
130 ENDDO
131 ENDIF
132
133
134
135 DO i=1,nel
136 ymom1 = ymom(i) - half*al(i)*forz(i)
137 zmom1 = zmom(i) + half*al(i)*fory(i)
138 mom1y(i) =-ymom1
139 mom1z(i) =-zmom1
140 m11(i)=exx(i)*xmom(i)+exy(i)*ymom1+exz(i)*zmom1
141 m21(i)=eyx(i)*xmom(i)+eyy(i)*ymom1+eyz(i)*zmom1
142 m31(i)=ezx(i)*xmom(i)+ezy(i)*ymom1+ezz(i)*zmom1
143
144 ymom2 = ymom(i) + half*al(i)*forz(i)
145 zmom2 = zmom(i) - half*al(i)*fory(i)
146 m12(i)=exx(i)*xmom(i)+exy(i)*ymom2+exz(i)*zmom2
147 m22(i)=eyx(i)*xmom(i)+eyy(i)*ymom2+eyz(i)*zmom2
148 m32(i)=ezx(i)*xmom(i)+ezy(i)*ymom2+ezz(i)*zmom2
149 ENDDO
150
151
152
153 IF (ivector == 1) THEN
154#include "vectorize.inc"
155 DO i=1,nel
156 ii = i+nft
157 n = iadr(1,ii)
158 fskyv(n,4)=m11(i)
159 fskyv(n,5)=m21(i)
160 fskyv(n,6)=m31(i)
161 mx1(i) = -m11(i)
162 my1(i) = -m21(i)
163 mz1(i) = -m31(i)
164 fskyv(n,8)=stir(1,i)
165 n = iadr(2,ii)
166 fskyv(n,4)=-m12(i)
167 fskyv(n,5)=-m22(i)
168 fskyv(n,6)=-m32(i)
169 mx2(i) = m12(i)
170 my2(i) = m22(i)
171 mz2(i) = m32(i)
172 fskyv(n,8)=stir(2,i)
173 ENDDO
174 ELSE
175 DO i=1,nel
176 ii = i+nft
177 n = iadr(1,ii)
178 fsky(4,n)=m11(i)
179 fsky(5,n)=m21(i)
180 fsky(6,n)=m31(i)
181 mx1(i) = -m11(i)
182 my1(i) = -m21(i)
183 mz1(i) = -m31(i)
184 fsky(8,n)=stir(1,i)
185 n = iadr(2,ii)
186 fsky(4,n)=-m12(i)
187 fsky(5,n)=-m22(i)
188 fsky(6,n)=-m32(i)
189 mx2(i) = m12(i)
190 my2(i) = m22(i)
191 mz2(i) = m32(i)
192 fsky(8,n)=stir(2,i)
193 ENDDO
194 ENDIF
195
196 RETURN