5 &( t,xm,xmul,su,sv,sw,u,v,x,y,z,surfac,ikle,nelem,nelmax,formul)
91 INTEGER,
INTENT(IN) :: NELEM,NELMAX
92 INTEGER,
INTENT(IN) :: IKLE(nelmax,6)
94 DOUBLE PRECISION,
INTENT(INOUT) :: T(nelmax,6),XM(nelmax,30)
95 DOUBLE PRECISION,
INTENT(IN) :: SURFAC(nelmax)
97 DOUBLE PRECISION,
INTENT(IN) :: XMUL
98 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*)
101 TYPE(bief_obj),
INTENT(IN) :: SU,SV,SW
103 DOUBLE PRECISION,
INTENT(IN) :: X(nelmax,6),Y(nelmax,6),Z(*)
105 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
111 DOUBLE PRECISION X2,X3,Y2,Y3
112 DOUBLE PRECISION U0,V0,F0,G0,HH,C,DX,SURNORMU
114 INTEGER I1,I2,I3,I4,I5,I6,IELEM
120 IF(su%ELM.NE.41)
THEN 121 WRITE(
lu,1001) su%ELM
122 1001
FORMAT(1x,
'MT04PP (BIEF) : TYPE OF U NOT IMPLEMENTED: ',i6)
126 IF(sv%ELM.NE.41)
THEN 127 WRITE(
lu,2001) sv%ELM
128 2001
FORMAT(1x,
'MT04PP (BIEF) : TYPE OF V NOT IMPLEMENTED: ',i6)
133 IF(sw%ELM.NE.41)
THEN 134 WRITE(
lu,3001) sw%ELM
135 3001
FORMAT(1x,
'MT04PP (BIEF) : TYPE OF W NOT IMPLEMENTED: ',i6)
140 IF(formul(1:7).EQ.
'MAUGUG2')
THEN 162 u0 = (u(i1)+u(i2)+u(i3)+u(i4)+u(i5)+u(i6))/6.d0
163 v0 = (v(i1)+v(i2)+v(i3)+v(i4)+v(i5)+v(i6))/6.d0
165 hh = (z(i4)-z(i1)+z(i5)-z(i2)+z(i6)-z(i3))/3.d0
166 c = xmul*hh/24.d0/surfac(ielem)
168 t(ielem,1)=2*c*(u0*y3-u0*y2-v0*x3+v0*x2)**2
169 t(ielem,2)=2*c*(-u0*y3+v0*x3)**2
170 t(ielem,3)=2*c*(-u0*y2+v0*x2)**2
171 t(ielem,4)=t(ielem,1)
172 t(ielem,5)=t(ielem,2)
173 t(ielem,6)=t(ielem,3)
175 xm(ielem,01)= 2*(-u0*y3+v0*x3)*(u0*y3-u0*y2-v0*x3+v0*x2)*c
176 xm(ielem,02)=-2*(-u0*y2+v0*x2)*(u0*y3-u0*y2-v0*x3+v0*x2)*c
177 xm(ielem,03)=(u0*y3-u0*y2-v0*x3+v0*x2)*(u0*y3-u0*y2-v0*x3+v0*x2)*c
178 xm(ielem,04)=(-u0*y3+v0*x3)*(u0*y3-u0*y2-v0*x3+v0*x2)*c
179 xm(ielem,05)=-(-u0*y2+v0*x2)*(u0*y3-u0*y2-v0*x3+v0*x2)*c
180 xm(ielem,06)=-2*(-u0*y2+v0*x2)*(-u0*y3+v0*x3)*c
181 xm(ielem,07)=(u0*y3-u0*y2-v0*x3+v0*x2)*(-u0*y3+v0*x3)*c
182 xm(ielem,08)=(-u0*y3+v0*x3)*(-u0*y3+v0*x3)*c
183 xm(ielem,09)=-(-u0*y2+v0*x2)*(-u0*y3+v0*x3)*c
184 xm(ielem,10)=-(u0*y3-u0*y2-v0*x3+v0*x2)*(-u0*y2+v0*x2)*c
185 xm(ielem,11)=-(-u0*y3+v0*x3)*(-u0*y2+v0*x2)*c
186 xm(ielem,12)=(-u0*y2+v0*x2)*(-u0*y2+v0*x2)*c
187 xm(ielem,13)= 2*(-u0*y3+v0*x3)*(u0*y3-u0*y2-v0*x3+v0*x2)*c
188 xm(ielem,14)=-2*(-u0*y2+v0*x2)*(u0*y3-u0*y2-v0*x3+v0*x2)*c
189 xm(ielem,15)=-2*(-u0*y2+v0*x2)*(-u0*y3+v0*x3)*c
193 ELSEIF(formul(1:7).EQ.
'MAUGUG1')
THEN 214 u0 = (u(i1)+u(i2)+u(i3)+u(i4)+u(i5)+u(i6))/6.d0
215 v0 = (v(i1)+v(i2)+v(i3)+v(i4)+v(i5)+v(i6))/6.d0
217 surnormu=1.d0/max(sqrt(u0**2+v0**2),1.d-8)
218 dx=sqrt(2.d0*surfac(ielem))
222 f0 = 0.5d0*dx*u0*surnormu
223 g0 = 0.5d0*dx*v0*surnormu
225 hh = (z(i4)-z(i1)+z(i5)-z(i2)+z(i6)-z(i3))/3.d0
226 c = xmul*hh/24.d0/surfac(ielem)
228 t(ielem,1)=2*(u0*y3-u0*y2-v0*x3+v0*x2)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
229 t(ielem,2)=2*(-u0*y3+v0*x3)*(-f0*y3+g0*x3)*c
230 t(ielem,3)=2*(-u0*y2+v0*x2)*(-f0*y2+g0*x2)*c
231 t(ielem,4)=t(ielem,1)
232 t(ielem,5)=t(ielem,2)
233 t(ielem,6)=t(ielem,3)
235 xm(ielem,01)=2*(-u0*y3+v0*x3)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
236 xm(ielem,02)=-2*(-u0*y2+v0*x2)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
237 xm(ielem,03)=(u0*y3-u0*y2-v0*x3+v0*x2)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
238 xm(ielem,04)=(-u0*y3+v0*x3)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
239 xm(ielem,05)=-(-u0*y2+v0*x2)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
240 xm(ielem,06)=-2*(-u0*y2+v0*x2)*(-f0*y3+g0*x3)*c
241 xm(ielem,07)=(u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y3+g0*x3)*c
242 xm(ielem,08)=(-u0*y3+v0*x3)*(-f0*y3+g0*x3)*c
243 xm(ielem,09)=-(-u0*y2+v0*x2)*(-f0*y3+g0*x3)*c
244 xm(ielem,10)=-(u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y2+g0*x2)*c
245 xm(ielem,11)=-(-u0*y3+v0*x3)*(-f0*y2+g0*x2)*c
246 xm(ielem,12)=(-u0*y2+v0*x2)*(-f0*y2+g0*x2)*c
247 xm(ielem,13)=2*(-u0*y3+v0*x3)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
248 xm(ielem,14)=-2*(-u0*y2+v0*x2)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
249 xm(ielem,15)=-2*(-u0*y2+v0*x2)*(-f0*y3+g0*x3)*c
251 xm(ielem,16)= 2*(u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y3+g0*x3)*c
252 xm(ielem,17)= -2*(u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y2+g0*x2)*c
253 xm(ielem,21)= -2*(-u0*y3+v0*x3)*(-f0*y2+g0*x2)*c
254 xm(ielem,18)=(u0*y3-u0*y2-v0*x3+v0*x2)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
255 xm(ielem,22)= (-u0*y3+v0*x3)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
256 xm(ielem,25)= -(-u0*y2+v0*x2)*(f0*y3-f0*y2-g0*x3+g0*x2)*c
257 xm(ielem,19)= (u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y3+g0*x3)*c
258 xm(ielem,23)= (-u0*y3+v0*x3)*(-f0*y3+g0*x3)*c
259 xm(ielem,26)= -(-u0*y2+v0*x2)*(-f0*y3+g0*x3)*c
260 xm(ielem,28)= 2*(u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y3+g0*x3)*c
261 xm(ielem,20)= -(u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y2+g0*x2)*c
262 xm(ielem,24)= -(-u0*y3+v0*x3)*(-f0*y2+g0*x2)*c
263 xm(ielem,27)= (-u0*y2+v0*x2)*(-f0*y2+g0*x2)*c
264 xm(ielem,29)= -2*(u0*y3-u0*y2-v0*x3+v0*x2)*(-f0*y2+g0*x2)*c
265 xm(ielem,30)= -2*(-u0*y3+v0*x3)*(-f0*y2+g0*x2)*c
270 WRITE(
lu,4001) formul
271 4001
FORMAT(1x,
'MT04PP (BIEF) : UNEXPECTED FORMULA: ',a16)
subroutine mt04pp(T, XM, XMUL, SU, SV, SW, U, V, X, Y, Z, SURFAC, IKLE, NELEM, NELMAX, FORMUL)