42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "mvsiz_p.inc"
50
51
52
53 INTEGER, INTENT(IN) :: NEL
55 . v(3,*), w(3,*),
56 . y1(*),y2(*),y3(*),y4(*),z1(*),z2(*),z3(*),z4(*),
57 . vy1(*),vy2(*),vy3(*),vy4(*),vz1(*),vz2(*),vz3(*),vz4(*),
58 . py1(*), py2(*), pz1(*), pz2(*),
59 . wyz(*), dyz(*), dzy(*),
60 . eyy(*),ezz(*), ett(*), eyz(*), eyt(*), ezt(*),
61 . rx(*),ry(*), rz(*), sx(*), sy(*), sz(*), tx(*), ty(*), tz(*),
62 . voln(*),aire(*),airem(*)
63
64 INTEGER NC1(*), NC2(*), NC3(*), NC4(*)
65
66
67
68#include "com01_c.inc"
69#include "com08_c.inc"
70
71
72
73 INTEGER I
75 . vy13(mvsiz), vy24(mvsiz), vz13(mvsiz),vz24(mvsiz),
76 . ym1(mvsiz), ym2(mvsiz), ym3(mvsiz), ym4(mvsiz),
77 . zm1(mvsiz), zm2(mvsiz), zm3(mvsiz), zm4(mvsiz), dth,
78 . yavg(mvsiz),a1(mvsiz) , a2(mvsiz)
79
80 dth=half*dt1
81
82 DO i=1,nel
83
84
85 vy1(i)=w(2,nc1(i))
86 vz1(i)=w(3,nc1(i))
87 vy2(i)=w(2,nc2(i))
88 vz2(i)=w(3,nc2(i))
89 vy3(i)=w(2,nc3(i))
90 vz3(i)=w(3,nc3(i))
91 vy4(i)=w(2,nc4(i))
92 vz4(i)=w(3,nc4(i))
93 ENDDO
94
95 DO i=1,nel
96 ym1(i)=y1(i)-dth*vy1(i)
97 ym2(i)=y2(i)-dth*vy2(i)
98 ym3(i)=y3(i)-dth*vy3(i)
99 ym4(i)=y4(i)-dth*vy4(i)
100 zm1(i)=z1(i)-dth*vz1(i)
101 zm2(i)=z2(i)-dth*vz2(i)
102 zm3(i)=z3(i)-dth*vz3(i)
103 zm4(i)=z4(i)-dth*vz4(i)
104 ENDDO
105
106 DO i=1,nel
107 vy1(i)=v(2,nc1(i))
108 vz1(i)=v(3,nc1(i))
109 vy2(i)=v(2,nc2(i))
110 vz2(i)=v(3,nc2(i))
111 vy3(i)=v(2,nc3(i))
112 vz3(i)=v(3,nc3(i))
113 vy4(i)=v(2,nc4(i))
114 vz4(i)=v(3,nc4(i))
115 ENDDO
116
117 DO i=1,nel
118 py1(i)=half*(zm2(i)-zm4(i))
119 py2(i)=half*(zm3(i)-zm1(i))
120 pz1(i)=half*(ym4(i)-ym2(i))
121 pz2(i)=half*(ym1(i)-ym3(i))
122 ENDDO
123
124 DO i=1,nel
125 a1(i) =ym2(i)*(zm3(i)-zm4(i))+ym3(i)*(zm4(i)-zm2(i))+ym4(i)*(zm2(i)-zm3(i))
126 a2(i) =ym2(i)*(zm4(i)-zm1(i))+ym4(i)*(zm1(i)-zm2(i))+ym1(i)*(zm2(i)-zm4(i))
127 airem(i)=(a1(i)+a2(i))*half
128
129 yavg(i) =ym1(i)+ym2(i)+ym3(i)+ym4(i)
130 ENDDO
131
132 DO i=1,nel
133 vy13(i)=vy1(i)-vy3(i)
134 vy24(i)=vy2(i)-vy4(i)
135 vz13(i)=vz1(i)-vz3(i)
136 vz24(i)=vz2(i)-vz4(i)
137 ENDDO
138
139 DO i=1,nel
140 IF(airem(i)>zero) THEN
141 eyy(i)=(py1(i)*vy13(i)+py2(i)*vy24(i))/airem(i)
142 ezz(i)=(pz1(i)*vz13(i)+pz2(i)*vz24(i))/airem(i)
143 ett(i)=zero
144 dzy(i)=(py1(i)*vz13(i)+py2(i)*vz24(i))/airem(i)
145 dyz(i)=(pz1(i)*vy13(i)+pz2(i)*vy24(i))/airem(i)
146 eyt(i)=zero
147 ezt(i)=zero
148 ELSE
149 eyy(i)=zero
150 ezz(i)=zero
151 ett(i)=zero
152 dzy(i)=zero
153 dyz(i)=zero
154 eyt(i)=zero
155 ezt(i)=zero
156 END IF
157 ENDDO
158
159 IF(n2d==1) THEN
160 DO i=1,nel
161 IF (yavg(i)<=zero) cycle
162 ett(i)=(vy1(i)+vy2(i)+vy3(i)+vy4(i))/yavg(i)
163 ENDDO
164 ENDIF
165
166 DO i=1,nel
167 eyz(i)= dzy(i)+dyz(i)
168 wyz(i)=half*dt1*(dzy(i)-dyz(i))
169 ENDDO
170
171
172
173 DO i=1,nel
174 py1(i)=half*(z2(i)-z4(i))
175 py2(i)=half*(z3(i)-z1(i))
176 pz1(i)=half*(y4(i)-y2(i))
177 pz2(i)=half*(y1(i)-y3(i))
178 ENDDO
179
180
181
182 DO i=1,nel
183 rx(i)=one
184 ry(i)=zero
185 rz(i)=zero
186 sx(i)=zero
187 sy(i)=-pz1(i)-pz2(i)
188 sz(i)=+py1(i)+py2(i)
189 tx(i)=zero
190 ty(i)=+pz1(i)-pz2(i)
191 tz(i)=-py1(i)+py2(i)
192 ENDDO
193
194 RETURN