35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "mvsiz_p.inc"
43
44
45
46
47
48
49 INTEGER, INTENT(IN) :: NEL
50 INTEGER, INTENT(IN) :: ISMSTR
51 INTEGER NPTR,NPTS,NPTT,NNPT ,I_SH
52
54 . mfxx(mvsiz,nnpt),mfxy(mvsiz,nnpt),mfxz(mvsiz,nnpt),
55 . mfyx(mvsiz,nnpt),mfyy(mvsiz,nnpt),mfyz(mvsiz,nnpt),
56 . mfzx(mvsiz,nnpt),mfzy(mvsiz,nnpt),mfzz(mvsiz,nnpt),
57 . bxx(mvsiz,nnpt),byy(mvsiz,nnpt),bzz(mvsiz,nnpt),
58 . bxy(mvsiz,nnpt),bxz(mvsiz,nnpt),byz(mvsiz,nnpt),offg(*)
59
60
61
62 INTEGER I, J ,IR,IS,IT,IP
64 . b0xy(mvsiz,2),b0xz(mvsiz,2),b0yz(mvsiz,2),
65 . b0yx(mvsiz,2),b0zx(mvsiz,2),b0zy(mvsiz,2)
66
67 IF (ismstr/=11) THEN
68 DO ip = 1,nnpt
69 DO i=1,nel
70
71 IF (ismstr==12.AND.offg(i) >one) cycle
72 bxx(i,ip)=mfxx(i,ip)*(two+mfxx(i,ip))+
73 . mfxy(i,ip)*mfxy(i,ip)+mfxz(i,ip)*mfxz(i,ip)
74 byy(i,ip)=mfyy(i,ip)*(two+mfyy(i,ip))+
75 . mfyx(i,ip)*mfyx(i,ip)+mfyz(i,ip)*mfyz(i,ip)
76 bzz(i,ip)=mfzz(i,ip)*(two+mfzz(i,ip))+
77 . mfzx(i,ip)*mfzx(i,ip)+mfzy(i,ip)*mfzy(i,ip)
78 bxy(i,ip)=mfxy(i,ip)+mfyx(i,ip)+mfxx(i,ip)*mfyx(i,ip)+
79 . mfxy(i,ip)*mfyy(i,ip)+mfxz(i,ip)*mfyz(i,ip)
80 bxz(i,ip)=mfxz(i,ip)+mfzx(i,ip)+mfxx(i,ip)*mfzx(i,ip)+
81 . mfxy(i,ip)*mfzy(i,ip)+mfxz(i,ip)*mfzz(i,ip)
82 byz(i,ip)=mfzy(i,ip)+mfyz(i,ip)+mfzx(i,ip)*mfyx(i,ip)+
83 . mfzy(i,ip)*mfyy(i,ip)+mfzz(i,ip)*mfyz(i,ip)
84 ENDDO
85 END DO
86 END IF
87
88 DO ir = 1,2
89 b0xy(1:nel,ir) = zero
90 b0xz(1:nel,ir) = zero
91 b0yz(1:nel,ir) = zero
92 END DO
93
94 IF (ismstr==11) THEN
95 DO ir = 1,2
96 b0yx(1:nel,ir) = zero
97 b0zx(1:nel,ir) = zero
98 b0zy(1:nel,ir) = zero
99 END DO
100 DO ir=1,nptr
101 DO is=1,npts
102 DO it=1,nptt
103
104 ip = ir + ( (is-1) + (it-1)*npts )*nptr
105
106
107 DO i=1,nel
108 b0xy(i,ir) = b0xy(i,ir)+mfxy(i,ip)
109 b0xz(i,it) = b0xz(i,it)+mfxz(i,ip)
110 b0yz(i,is) = b0yz(i,is)+mfyz(i,ip)
111 b0yx(i,ir) = b0yx(i,ir)+mfyx(i,ip)
112 b0zx(i,it) = b0zx(i,it)+mfzx(i,ip)
113 b0zy(i,is) = b0zy(i,is)+mfzy(i,ip)
114 END DO
115 ENDDO
116 ENDDO
117 ENDDO
118
119 DO ir = 1,2
120 DO i=1,nel
121 b0xy(i,ir) = b0xy(i,ir)*fourth
122 b0xz(i,ir) = b0xz(i,ir)*fourth
123 b0yz(i,ir) = b0yz(i,ir)*fourth
124 b0yx(i,ir) = b0yx(i,ir)*fourth
125 b0zx(i,ir) = b0zx(i,ir)*fourth
126 b0zy(i,ir) = b0zy(i,ir)*fourth
127 END DO
128 END DO
129
130 DO ir=1,nptr
131 DO is=1,npts
132 DO it=1,nptt
133
134 ip = ir + ( (is-1) + (it-1)*npts )*nptr
135
136 DO i=1,nel
137 mfxy(i,ip) = b0xy(i,ir)
138 mfxz(i,ip) = b0xz(i,it)
139 mfyz(i,ip) = b0yz(i,is)
140 mfyx(i,ip) = b0yx(i,ir)
141 mfzx(i,ip) = b0zx(i,it)
142 mfzy(i,ip) = b0zy(i,is)
143 END DO
144 ENDDO
145 ENDDO
146 ENDDO
147 ELSE
148 DO ir=1,nptr
149 DO is=1,npts
150 DO it=1,nptt
151
152 ip = ir + ( (is-1) + (it-1)*npts )*nptr
153
154
155 DO i=1,nel
156 IF (ismstr==12.AND.offg(i) >one) cycle
157 b0xy(i,ir) = b0xy(i,ir)+bxy(i,ip)
158 b0xz(i,it) = b0xz(i,it)+bxz(i,ip)
159 b0yz(i,is) = b0yz(i,is)+byz(i,ip)
160 END DO
161 ENDDO
162 ENDDO
163 ENDDO
164
165 DO ir = 1,2
166 DO i=1,nel
167 IF (ismstr==12.AND.offg(i) >one) cycle
168 b0xy(i,ir) = b0xy(i,ir)*fourth
169 b0xz(i,ir) = b0xz(i,ir)*fourth
170 b0yz(i,ir) = b0yz(i,ir)*fourth
171 END DO
172 END DO
173
174 DO ir=1,nptr
175 DO is=1,npts
176 DO it=1,nptt
177
178 ip = ir + ( (is-1) + (it-1)*npts )*nptr
179
180 DO i=1,nel
181 IF (ismstr==12.AND.offg(i) >one) cycle
182 bxy(i,ip) = b0xy(i,ir)
183 bxz(i,ip) = b0xz(i,it)
184 byz(i,ip) = b0yz(i,is)
185 END DO
186 ENDDO
187 ENDDO
188 ENDDO
189 END IF
190
191 RETURN