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 I, II, N, J
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, ymom1p, zmom1p,
81 . ymom2p,zmom2p
82
83 DO i=1,nel
84 f11(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
85 f21(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
86 f31(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
87 ENDDO
88
89
90
91 IF (ivector == 1) THEN
92#include "vectorize.inc"
93 DO i=1,nel
94 ii = i+nft
95 n = iadr(1,ii)
96 fskyv(n,1)=f11(i)
97 fskyv(n,2)=f21(i)
98 fskyv(n,3)=f31(i)
99 fx1(i) = -f11(i)
100 fy1(i) = -f21(i)
101 fz1(i) = -f31(i)
102 fskyv(n,7)=sti(1,i)
103 n = iadr(2,ii)
104 fskyv(n,1)=-f11(i)
105 fskyv(n,2)=-f21(i)
106 fskyv(n,3)=-f31(i)
107 fx2(i) = f11(i)
108 fy2(i) = f21(i)
109 fz2(i) = f31(i)
110 fskyv(n,7)=sti(2,i)
111 ENDDO
112 ELSE
113 DO i=1,nel
114 ii = i+nft
115 n = iadr(1,ii)
116 fsky(1,n)=f11(i)
117 fsky(2,n)=f21(i)
118 fsky(3,n)=f31(i)
119 fx1(i) = -f11(i)
120 fy1(i) = -f21(i)
121 fz1(i) = -f31(i)
122 fsky(7,n)=sti(1,i)
123 n = iadr(2,ii)
124 fsky(1,n)=-f11(i)
125 fsky(2,n)=-f21(i)
126 fsky(3,n)=-f31(i)
127 fx2(i) = f11(i)
128 fy2(i) = f21(i)
129 fz2(i) = f31(i)
130 fsky(7,n)=sti(2,i)
131 ENDDO
132 ENDIF
133
134
135
136 DO i=1,nel
137 ymom1 = ymom(i) - half*al(i)*forz(i)
138 zmom1 = zmom(i) + half*al(i)*fory(i)
139 mom1y(i) =-ymom1
140 mom1z(i) =-zmom1
141 m11(i)=exx(i)*xmom(i)+exy(i)*ymom1+exz(i)*zmom1
142 m21(i)=eyx(i)*xmom(i)+eyy(i)*ymom1+eyz(i)*zmom1
143 m31(i)=ezx(i)*xmom(i)+ezy(i)*ymom1+ezz(i)*zmom1
144
145 ymom2 = ymom(i) + half*al(i)*forz(i)
146 zmom2 = zmom(i) - half*al(i)*fory(i)
147 m12(i)=exx(i)*xmom(i)+exy(i)*ymom2+exz(i)*zmom2
148 m22(i)=eyx(i)*xmom(i)+eyy(i)*ymom2+eyz(i)*zmom2
149 m32(i)=ezx(i)*xmom(i)+ezy(i)*ymom2+ezz(i)*zmom2
150 ENDDO
151
152
153
154 IF (ivector == 1) THEN
155#include "vectorize.inc"
156 DO i=1,nel
157 ii = i+nft
158 n = iadr(1,ii)
159 fskyv(n,4)=m11(i)
160 fskyv(n,5)=m21(i)
161 fskyv(n,6)=m31(i)
162 mx1(i) = -m11(i)
163 my1(i) = -m21(i)
164 mz1(i) = -m31(i)
165 fskyv(n,8)=stir(1,i)
166 n = iadr(2,ii)
167 fskyv(n,4)=-m12(i)
168 fskyv(n,5)=-m22(i)
169 fskyv(n,6)=-m32(i)
170 mx2(i) = m12(i)
171 my2(i) = m22(i)
172 mz2(i) = m32(i)
173 fskyv(n,8)=stir(2,i)
174 ENDDO
175 ELSE
176 DO i=1,nel
177 ii = i+nft
178 n = iadr(1,ii)
179 fsky(4,n)=m11(i)
180 fsky(5,n)=m21(i)
181 fsky(6,n)=m31(i)
182 mx1(i) = -m11(i)
183 my1(i) = -m21(i)
184 mz1(i) = -m31(i)
185 fsky(8,n)=stir(1,i)
186 n = iadr(2,ii)
187 fsky(4,n)=-m12(i)
188 fsky(5,n)=-m22(i)
189 fsky(6,n)=-m32(i)
190 mx2(i) = m12(i)
191 my2(i) = m22(i)
192 mz2(i) = m32(i)
193 fsky(8,n)=stir(2,i)
194 ENDDO
195 ENDIF
196
197 RETURN