35
36
37
38#include "implicit_f.inc"
39
40
41
42
43
44
45 INTEGER, INTENT(IN) :: ISMSTR
46 INTEGER, INTENT(IN) :: JLAG
47 INTEGER NEL
49 . offg(*),off(*),wxx(*),wyy(*),wzz(*)
50 double precision
51 . sav(nel,21)
52
53
54
55 INTEGER I
56 DOUBLE PRECISION X , Y, Z ,DV
57
58
59
60
61 IF(ismstr==11)THEN
62
63 DO i=1,nel
64
65 IF(offg(i)==zero) cycle
66 x=sav(i,1)
67 y=sav(i,8)
68 z=sav(i,15)
69 sav(i,1) = x - y*wzz(i) + z*wyy(i)
70 sav(i,8) = y - z*wxx(i) + x*wzz(i)
71 sav(i,15) = z - x*wyy(i) + y*wxx(i)
72
73 x=sav(i,2)
74 y=sav(i,9)
75 z=sav(i,16)
76 sav(i,2) = x - y*wzz(i) + z*wyy(i)
77 sav(i,9) = y - z*wxx(i) + x*wzz(i)
78 sav(i,16) = z - x*wyy(i) + y*wxx(i)
79
80 x=sav(i,3)
81 y=sav(i,10)
82 z=sav(i,17)
83 sav(i,3) = x - y*wzz(i) + z*wyy(i)
84 sav(i,10) = y - z*wxx(i) + x*wzz(i)
85 sav(i,17) = z - x*wyy(i) + y*wxx(i)
86
87 x=sav(i,4)
88 y=sav(i,11)
89 z=sav(i,18)
90 sav(i,4) = x - y*wzz(i) + z*wyy(i)
91 sav(i,11) = y - z*wxx(i) + x*wzz(i)
92 sav(i,18) = z - x*wyy(i) + y*wxx(i)
93
94 x=sav(i,5)
95 y=sav(i,12)
96 z=sav(i,19)
97 sav(i,5) = x - y*wzz(i) + z*wyy(i)
98 sav(i,12) = y - z*wxx(i) + x*wzz(i)
99 sav(i,19) = z - x*wyy(i) + y*wxx(i)
100
101 x=sav(i,6)
102 y=sav(i,13)
103 z=sav(i,20)
104 sav(i,6) = x - y*wzz(i) + z*wyy(i)
105 sav(i,13) = y - z*wxx(i) + x*wzz(i)
106 sav(i,20) = z - x*wyy(i) + y*wxx(i)
107
108 x=sav(i,7)
109 y=sav(i,14)
110 z=sav(i,21)
111 sav(i,7) = x - y*wzz(i) + z*wyy(i)
112 sav(i,14) = y - z*wxx(i) + x*wzz(i)
113 sav(i,21) = z - x*wyy(i) + y*wxx(i)
114 ENDDO
115
116 ELSEIF(ismstr<=4.AND.jlag>0)THEN
117 DO i=1,nel
118 IF(offg(i)>one)THEN
119
120 x=sav(i,1)
121 y=sav(i,2)
122 z=sav(i,3)
123 sav(i,1) = x - y*wzz(i) + z*wyy(i)
124 sav(i,2) = y - z*wxx(i) + x*wzz(i)
125 sav(i,3) = z - x*wyy(i) + y*wxx(i)
126
127 x=sav(i,4)
128 y=sav(i,5)
129 z=sav(i,6)
130 sav(i,4) = x - y*wzz(i) + z*wyy(i)
131 sav(i,5) = y - z*wxx(i) + x*wzz(i)
132 sav(i,6) = z - x*wyy(i) + y*wxx(i)
133
134 x=sav(i,7)
135 y=sav(i,8)
136 z=sav(i,9)
137 sav(i,7) = x - y*wzz(i) + z*wyy(i)
138 sav(i,8) = y - z*wxx(i) + x*wzz(i)
139 sav(i,9) = z - x*wyy(i) + y*wxx(i)
140
141 x=sav(i,10)
142 y=sav(i,11)
143 z=sav(i,12)
144 sav(i,10) = x - y*wzz(i) + z*wyy(i)
145 sav(i,11) = y - z*wxx(i) + x*wzz(i)
146 sav(i,12) = z - x*wyy(i) + y*wxx(i)
147
148 x=sav(i,13)
149 y=sav(i,14)
150 z=sav(i,15)
151 sav(i,13) = x - y*wzz(i) + z*wyy(i)
152 sav(i,14) = y - z*wxx(i) + x*wzz(i)
153 sav(i,15) = z - x*wyy(i) + y*wxx(i)
154
155 x=sav(i,16)
156 y=sav(i,17)
157 z=sav(i,18)
158 sav(i,16) = x - y*wzz(i) + z*wyy(i)
159 sav(i,17) = y - z*wxx(i) + x*wzz(i)
160 sav(i,18) = z - x*wyy(i) + y*wxx(i)
161
162 x=sav(i,19)
163 y=sav(i,20)
164 z=sav(i,21)
165 sav(i,19) = x - y*wzz(i) + z*wyy(i)
166 sav(i,20) = y - z*wxx(i) + x*wzz(i)
167 sav(i,21) = z - x*wyy(i) + y*wxx(i)
168
169 ENDIF
170 ENDDO
171 ENDIF
172
173 RETURN