146
147
148
149#include "implicit_f.inc"
150#include "param_c.inc"
151
152
153
154 INTEGER,INTENT(INOUT) :: , INDX(*),(*),ICODT(*)
155 my_real,
INTENT(INOUT) :: a(3,*), b(lskew,*)
156
157
158
159 INTEGER :: K, N, ISK, LCOD
161
162
163
164#include "vectorize.inc"
165 DO k = 1, nindx
166 n = indx(k)
167 isk = iskew(n)
168 lcod = icodt(n)
169 IF(isk==1) THEN
170
171 SELECT CASE (lcod)
172 CASE(1)
173 a(3,n)=zero
174 CASE(2)
175 a(2,n)=zero
176 CASE(3)
177 a(2,n)=zero
178 a(3,n)=zero
179 CASE(4)
180 a(1,n)=zero
181 CASE(5)
182 a(1,n)=zero
183 a(3,n)=zero
184 CASE(6)
185 a(1,n)=zero
186 a(2,n)=zero
187 CASE(7)
188 a(1,n)=zero
189 a(2,n)=zero
190 a(3,n)=zero
191 END SELECT
192 ELSE
193
194 SELECT CASE (lcod)
195 CASE(1)
196 aa =b(7,isk)*a(1,n)+b(8,isk)*a(2,n)+b(9,isk)*a(3,n)
197 a(1,n)=a(1,n)-b(7,isk)*aa
198 a(2,n)=a(2,n)-b(8,isk)*aa
199 a(3,n)=a(3,n)-b(9,isk)*aa
200 CASE(2)
201 aa =b(4,isk)*a(1,n)+b(5,isk)*a(2,n)+b(6,isk)*a(3,n)
202 a(1,n)=a(1,n)-b(4,isk)*aa
203 a(2,n)=a(2,n)-b(5,isk)*aa
204 a(3,n)=a(3,n)-b(6,isk)*aa
205 CASE(3)
206 aa =b(7,isk)*a(1,n)+b(8,isk)*a(2,n)+b(9,isk)*a(3,n)
207 a(1,n)=a(1,n)-b(7,isk)*aa
208 a(2,n)=a(2,n)-b(8,isk)*aa
209 a(3,n)=a(3,n)-b(9,isk)*aa
210 aa =b(4,isk)*a(1,n)+b(5,isk)*a(2,n)+b(6,isk)*a(3,n)
211 a(1,n)=a(1,n)-b(4,isk)*aa
212 a(2,n)=a(2,n)-b(5,isk)*aa
213 a(3,n)=a(3,n)-b(6,isk)*aa
214 CASE(4)
215 aa =b(1,isk)*a(1,n)+b(2,isk)*a(2,n)+b(3,isk)*a(3,n)
216 a(1,n)=a(1,n)-b(1,isk)*aa
217 a(2,n)=a(2,n)-b(2,isk)*aa
218 a(3,n)=a(3,n)-b(3,isk)*aa
219 CASE(5)
220 aa =b(7,isk)*a(1,n)+b(8,isk)*a(2,n)+b(9,isk)*a(3,n)
221 a(1,n)=a(1,n)-b(7,isk)*aa
222 a(2,n)=a(2,n)-b(8,isk)*aa
223 a(3,n)=a(3,n)-b(9,isk)*aa
224 aa =b(1,isk)*a(1,n)+b(2,isk)*a(2,n)+b(3,isk)*a(3,n)
225 a(1,n)=a(1,n)-b(1,isk)*aa
226 a(2,n)=a(2,n)-b(2,isk)*aa
227 a(3,n)=a(3,n)-b(3,isk)*aa
228 CASE(6)
229 aa =b(1,isk)*a(1,n)+b(2,isk)*a(2,n)+b(3,isk)*a(3,n)
230 a(1,n)=a(1,n)-b(1,isk)*aa
231 a(2,n)=a(2,n)-b(2,isk)*aa
232 a(3,n)=a(3,n)-b(3,isk)*aa
233 aa =b(4,isk)*a(1,n)+b(5,isk)*a(2,n)+b(6,isk)*a(3,n)
234 a(1,n)=a(1,n)-b(4,isk)*aa
235 a(2,n)=a(2,n)-b(5,isk)*aa
236 a(3,n)=a(3,n)-b(6,isk)*aa
237 CASE(7)
238 a(1,n)=zero
239 a(2,n)=zero
240 a(3,n)=zero
241 END SELECT
242 ENDIF
243 ENDDO
244
245 RETURN