30
31
32
33#include "implicit_f.inc"
34
35
36
37#include "com08_c.inc"
38#include "param_c.inc"
39
40
41
42 INTEGER NINDX, INDX(*), ISKEW(*), ICODT(*),NODREAC(*), FLAG
44 . a(3,*), skew(lskew,*),fthreac(6,*)
45
46
47
48 INTEGER N, K, L, ISK, LCOD
50 . aa,fthreac0(6)
51
52 IF (flag == 0) n = 0
53 IF (flag == 1) n = 3
54
55#include "vectorize.inc"
56 DO k = 1, nindx
57 l = indx(k)
58 isk = iskew(l)
59 lcod = icodt(l)
60 fthreac0 = zero
61
62 IF(isk==1) THEN
63
64
65
66 IF(lcod==1)THEN
67 fthreac0(n+3) = - a(3,l)
68 ELSEIF(lcod==2)THEN
69 fthreac0(n+2) = - a(2,l)
70 ELSEIF(lcod==3)THEN
71 fthreac0(n+2) = - a(2,l)
72 fthreac0(n+3) = - a(3,l)
73 ELSEIF(lcod==4)THEN
74 fthreac0(n+1) = - a(1,l)
75 ELSEIF(lcod==5)THEN
76 fthreac0(n+1) = - a(1,l)
77 fthreac0(n+3) = - a(3,l)
78 ELSEIF(lcod==6)THEN
79 fthreac0(n+1) = - a(1,l)
80 fthreac0(n+2) = - a(2,l)
81 ELSEIF(lcod==7)THEN
82 fthreac0(n+1) = - a(1,l)
83 fthreac0(n+2) = - a(2,l)
84 fthreac0(n+3) = - a(3,l)
85 ENDIF
86
87 ELSE
88
89
90
91 IF(lcod==1)THEN
92 aa =skew(7,isk)*a(1,l)+skew(8,isk)*a(2,l)+skew(9,isk)*a(3,l)
93 fthreac0(n+1)=-skew(7,isk)*aa
94 fthreac0(n+2)=-skew(8,isk)*aa
95 fthreac0(n+3)=-skew(9,isk)*aa
96 ELSEIF(lcod==2)THEN
97 aa =skew(4,isk)*a(1,l)+skew(5,isk)*a(2,l)+skew(6,isk)*a(3,l)
98 fthreac0(n+1)=-skew(4,isk)*aa
99 fthreac0(n+2)=-skew(5,isk)*aa
100 fthreac0(n+3)=-skew(6,isk)*aa
101 ELSEIF(lcod==3)THEN
102 aa =skew(7,isk)*a(1,l)+skew(8,isk)*a(2,l)+skew(9,isk)*a(3,l)
103 fthreac0(n+1)=-skew(7,isk)*aa
104 fthreac0(n+2)=-skew(8,isk)*aa
105 fthreac0(n+3)=-skew(9,isk)*aa
106 aa =skew(4,isk)*a(1,l)+skew(5,isk)*a(2,l)+skew(6,isk)*a(3,l)
107 fthreac0(n+1)=fthreac(n+1,nodreac(l))-skew(4,isk)*aa
108 fthreac0(n+2)=fthreac(n+2,nodreac(l))-skew(5,isk)*aa
109 fthreac0(n+3)=fthreac(n+3,nodreac(l))-skew(6,isk)*aa
110 ELSEIF(lcod==4)THEN
111 aa =skew(1,isk)*a(1,l)+skew(2,isk)*a(2,l)+skew(3,isk)*a(3,l)
112 fthreac0(n+1)=-skew(1,isk)*aa
113 fthreac0(n+2)=-skew(2,isk)*aa
114 fthreac0(n+3)=-skew(3,isk)*aa
115 ELSEIF(lcod==5)THEN
116 aa =skew(7,isk)*a(1,l)+skew(8,isk)*a(2,l)+skew(9,isk)*a(3,l)
117 fthreac0(n+1)=-skew(7,isk)*aa
118 fthreac0(n+2)=-skew(8,isk)*aa
119 fthreac0(n+3)=-skew(9,isk)*aa
120 aa =skew(1,isk)*a(1,l)+skew(2,isk)*a(2,l)+skew(3,isk)*a(3,l)
121 fthreac0(n+1)=fthreac(n+1,nodreac(l))-skew(1,isk)*aa
122 fthreac0(n+2)=fthreac(n+2,nodreac(l))-skew(2,isk)*aa
123 fthreac0(n+3)=fthreac(n+3,nodreac(l))-skew(3,isk)*aa
124 ELSEIF(lcod==6)THEN
125 aa =skew(1,isk)*a(1,l)+skew(2,isk)*a(2,l)+skew(3,isk)*a(3,l)
126 fthreac0(n+1)=-skew(1,isk)*aa
127 fthreac0(n+2)=-skew(2,isk)*aa
128 fthreac0(n+3)=-skew(3,isk)*aa
129 aa =skew(4,isk)*a(1,l)+skew(5,isk)*a(2,l)+skew(6,isk)*a(3,l)
130 fthreac0(n+1)=fthreac(n+1,nodreac(l))-skew(4,isk)*aa
131 fthreac0(n+2)=fthreac(n+2,nodreac(l))-skew(5,isk)*aa
132 fthreac0(n+3)=fthreac(n+3,nodreac(l))-skew(6,isk)*aa
133 ELSEIF(lcod==7)THEN
134 fthreac0(n+1) = - a(1,l)
135 fthreac0(n+2) = - a(2,l)
136 fthreac0(n+3) = - a(3,l)
137 ENDIF
138
139 ENDIF
140
141 fthreac(n+1,nodreac(l)) = fthreac(n+1,nodreac(l))
142 . + fthreac0(n+1)*dt12
143 fthreac(n+2,nodreac(l)) = fthreac(n+2,nodreac(l))
144 .
145 fthreac(n+3,nodreac(l)) = fthreac(n+3,nodreac(l))
146 . + fthreac0(n+3)*dt12
147
148 ENDDO
149
150 RETURN