39
40
41
42#include "implicit_f.inc"
43
44
45
46 INTEGER, INTENT(IN) :: NEL
47 INTEGER NC1(*), NC2(*), NC3(*), NC4(*), NC5(*), NC6(*), NC7(*),
48 . NC8(*),NVC
49
51 . offg(*),f(3,*),stifn(*),sti(*),
52 . f11(*),f21(*),f31(*),f12(*),f22(*),f32(*),
53 . f13(*),f23(*),f33(*),f14(*),f24(*),f34(*),
54 . f15(*),f25(*),f35(*),f16(*),f26(*),f36(*),
55 . f17(*),f27(*),f37(*),f18(*),f28(*),f38(*)
56
57
58
59
60
61
62 INTEGER I, J
64 . off_l
65 INTEGER NVC1,NVC2,NVC3,NVC4,NVC5,NVC6,NVC7,NVC8
66
67 off_l = 0.
68 DO i=1,nel
69 off_l =
min(off_l,offg(i))
70 ENDDO
71 IF(off_l<zero)THEN
72 DO i=1,nel
73 IF(offg(i) >= zero)cycle
74 f11(i)=zero
75 f21(i)=zero
76 f31(i)=zero
77 f12(i)=zero
78 f22(i)=zero
79 f32(i)=zero
80 f13(i)=zero
81 f23(i)=zero
82 f33(i)=zero
83 f14(i)=zero
84 f24(i)=zero
85 f34(i)=zero
86 f15(i)=zero
87 f25(i)=zero
88 f35(i)=zero
89 f16(i)=zero
90 f26(i)=zero
91 f36(i)=zero
92 f17(i)=zero
93 f27(i)=zero
94 f37(i)=zero
95 f18(i)=zero
96 f28(i)=zero
97 f38(i)=zero
98 sti(i)=zero
99 ENDDO
100 ENDIF
101
102 nvc1 = nvc / 128
103 nvc2 =(nvc-nvc1*128) / 64
104 nvc3 =(nvc-nvc1*128-nvc2*64) / 32
105 nvc4 =(nvc-nvc1*128-nvc2*64-nvc3*32)/16
106 nvc5 =(nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16)/8
107 nvc6 =(nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8)/4
108 nvc7 =(nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8-nvc6*4)/2
109 nvc8 = nvc-nvc1*128-nvc2*64-nvc3*32-nvc4*16-nvc5*8-nvc6*4-nvc7*2
110
111
112 DO i=1,nel
113 sti(i)=fourth*sti(i)
114 END DO
115
116 IF(nvc1 == 0)THEN
117#include "vectorize.inc"
118 DO i=1,nel
119 f(1,nc1(i))=f(1,nc1(i))+f11(i)
120 f(2,nc1(i))=f(2,nc1(i))+f21(i)
121 f(3,nc1(i))=f(3,nc1(i))+f31(i)
122
123 ENDDO
124 ELSE
125 DO i=1,nel
126 f(1,nc1(i))=f(1,nc1(i))+f11(i)
127 f(2,nc1(i))=f(2,nc1(i))+f21(i)
128 f(3,nc1(i))=f(3,nc1(i))+f31(i)
129
130 ENDDO
131 ENDIF
132 IF(nvc2 == 0)THEN
133#include "vectorize.inc"
134 DO i=1,nel
135 f(1,nc2(i))=f(1,nc2(i))+f12(i)
136 f(2,nc2(i))=f(2,nc2(i))+f22(i)
137 f(3,nc2(i))=f(3,nc2(i))+f32(i)
138
139 ENDDO
140 ELSE
141 DO i=1,nel
142 f(1,nc2(i))=f(1,nc2(i))+f12(i)
143 f(2,nc2(i))=f(2,nc2(i))+f22(i)
144 f(3,nc2(i))=f(3,nc2(i))+f32(i)
145
146 ENDDO
147 ENDIF
148 IF(nvc3 == 0)THEN
149#include "vectorize.inc"
150 DO i=1,nel
151 f(1,nc3(i))=f(1,nc3(i))+f13(i)
152 f(2,nc3(i))=f(2,nc3(i))+f23(i)
153 f(3,nc3(i))=f(3,nc3(i))+f33(i)
154
155 ENDDO
156 ELSE
157 DO i=1,nel
158 f(1,nc3(i))=f(1,nc3(i))+f13(i)
159 f(2,nc3(i))=f(2,nc3(i))+f23(i)
160 f(3,nc3(i))=f(3,nc3(i))+f33(i)
161
162 ENDDO
163 ENDIF
164 IF(nvc4 == 0)THEN
165#include "vectorize.inc"
166 DO i=1,nel
167 f(1,nc4(i))=f(1,nc4(i))+f14(i)
168 f(2,nc4(i))=f(2,nc4(i))+f24(i)
169 f(3,nc4(i))=f(3,nc4(i))+f34(i)
170
171 ENDDO
172 ELSE
173 DO i=1,nel
174 f(1,nc4(i))=f(1,nc4(i))+f14(i)
175 f(2,nc4(i))=f(2,nc4(i))+f24(i)
176 f(3,nc4(i))=f(3,nc4(i))+f34(i)
177
178 ENDDO
179 ENDIF
180 IF(nvc5 == 0)THEN
181#include "vectorize.inc"
182 DO i=1,nel
183 f(1,nc5(i))=f(1,nc5(i))+f15(i)
184 f(2,nc5(i))=f(2,nc5(i))+f25(i)
185 f(3,nc5(i))=f(3,nc5(i))+f35(i)
186
187 ENDDO
188 ELSE
189 DO i=1,nel
190 f(1,nc5(i))=f(1,nc5(i))+f15(i)
191 f(2,nc5(i))=f(2,nc5(i))+f25(i)
192 f(3,nc5(i))=f(3,nc5(i))+f35(i)
193
194 ENDDO
195 ENDIF
196 IF(nvc6 == 0)THEN
197#include "vectorize.inc"
198 DO i=1,nel
199 f(1,nc6(i))=f(1,nc6(i))+f16(i)
200 f(2,nc6(i))=f(2,nc6(i))+f26(i)
201 f(3,nc6(i))=f(3,nc6(i))+f36(i)
202
203 ENDDO
204 ELSE
205 DO i=1,nel
206 f(1,nc6(i))=f(1,nc6(i))+f16(i)
207 f(2,nc6(i))=f(2,nc6(i))+f26(i)
208 f(3,nc6(i))=f(3,nc6(i))+f36(i)
209
210 ENDDO
211 ENDIF
212 IF(nvc7 == 0)THEN
213#include "vectorize.inc"
214 DO i=1,nel
215 f(1,nc7(i))=f(1,nc7(i))+f17(i)
216 f(2,nc7(i))=f(2,nc7(i))+f27(i)
217 f(3,nc7(i))=f(3,nc7(i))+f37(i)
218
219 ENDDO
220 ELSE
221 DO i=1,nel
222 f(1,nc7(i))=f(1,nc7(i))+f17(i)
223 f(2,nc7(i))=f(2,nc7(i))+f27(i)
224 f(3,nc7(i))=f(3,nc7(i))+f37(i)
225
226 ENDDO
227 ENDIF
228 IF(nvc8 == 0)THEN
229#include "vectorize.inc"
230 DO i=1,nel
231 f(1,nc8(i))=f(1,nc8(i))+f18(i)
232 f(2,nc8(i))=f(2,nc8(i))+f28(i)
233 f(3,nc8(i))=f(3,nc8(i))+f38(i)
234
235 ENDDO
236 ELSE
237 DO i=1,nel
238 f(1,nc8(i))=f(1,nc8(i))+f18(i)
239 f(2,nc8(i))=f(2,nc8(i))+f28(i)
240 f(3,nc8(i))=f(3,nc8(i))+f38(i)
241
242 ENDDO
243 ENDIF
244
245 RETURN