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