5 &(t,xm,lego,xmul,sw,w,h,
6 & x,y,ikle,nelem,nelmax,nplan,npoin2)
57 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NPLAN,NPOIN2
58 INTEGER,
INTENT(IN) :: IKLE(nelmax,4)
60 DOUBLE PRECISION,
INTENT(INOUT) :: T(nelmax,4),XM(12,nelmax)
62 DOUBLE PRECISION,
INTENT(IN) :: XMUL
63 DOUBLE PRECISION,
INTENT(IN) :: W(*)
64 DOUBLE PRECISION,
INTENT(IN) :: H(nelmax,4)
66 LOGICAL,
INTENT(IN) :: LEGO
70 TYPE(bief_obj),
INTENT(IN) :: SW
72 DOUBLE PRECISION,
INTENT(IN) :: X(*),Y(*)
78 INTEGER IELEM,IPLAN,J1,J2,ISEG,II1,II2,II3,IELEM3D,NELEM2
80 DOUBLE PRECISION X2,X3,Y2,Y3
81 DOUBLE PRECISION L12,L13,L14,L23,L24,L34,L21,L31,L41,L32,L42,L43
82 DOUBLE PRECISION ALFA(4),SURFSUR3,SUMMAXK
84 INTEGER IL1,IL2,I1,I2,I3,I4,I5,I6,I
97 nelem2=nelmax/3/(nplan-1)
128 IF(sw%ELM.NE.51)
THEN 129 WRITE(
lu,*)
'MT14TT DISCRETISATION NON PREVUE' 146 i1=ii1+(iplan-1)*npoin2
147 i2=ii2+(iplan-1)*npoin2
148 i3=ii3+(iplan-1)*npoin2
157 surfsur3=xmul*(x2*y3-x3*y2)/6.d0
163 ielem3d=3*nelem2*(iplan-1)+(i-1)*nelem2+ielem
167 alfa(1)=xmul*h(ielem3d,1)
168 alfa(2)=xmul*h(ielem3d,2)
169 alfa(3)=xmul*h(ielem3d,3)
170 alfa(4)=xmul*h(ielem3d,4)
184 IF(j1.EQ.i1.AND.j2.EQ.i4)
THEN 185 alfa(il1)=alfa(il1)-w(i1)*surfsur3
186 alfa(il2)=alfa(il2)+w(i1)*surfsur3
187 ELSEIF(j1.EQ.i4.AND.j2.EQ.i1)
THEN 188 alfa(il1)=alfa(il1)+w(i1)*surfsur3
189 alfa(il2)=alfa(il2)-w(i1)*surfsur3
190 ELSEIF(j1.EQ.i2.AND.j2.EQ.i5)
THEN 191 alfa(il1)=alfa(il1)-w(i2)*surfsur3
192 alfa(il2)=alfa(il2)+w(i2)*surfsur3
193 ELSEIF(j1.EQ.i5.AND.j2.EQ.i2)
THEN 194 alfa(il1)=alfa(il1)+w(i2)*surfsur3
195 alfa(il2)=alfa(il2)-w(i2)*surfsur3
196 ELSEIF(j1.EQ.i3.AND.j2.EQ.i6)
THEN 197 alfa(il1)=alfa(il1)-w(i3)*surfsur3
198 alfa(il2)=alfa(il2)+w(i3)*surfsur3
199 ELSEIF(j1.EQ.i6.AND.j2.EQ.i3)
THEN 200 alfa(il1)=alfa(il1)+w(i3)*surfsur3
201 alfa(il2)=alfa(il2)-w(i3)*surfsur3
207 summaxk=max(0.d0,alfa(1))
211 IF(summaxk.GT.1.d-10)
THEN 212 summaxk=-1.d0/summaxk
213 l12=summaxk*max(0.d0,alfa(1))*min(0.d0,alfa(2))
214 l13=summaxk*max(0.d0,alfa(1))*min(0.d0,alfa(3))
215 l14=summaxk*max(0.d0,alfa(1))*min(0.d0,alfa(4))
216 l23=summaxk*max(0.d0,alfa(2))*min(0.d0,alfa(3))
217 l24=summaxk*max(0.d0,alfa(2))*min(0.d0,alfa(4))
218 l34=summaxk*max(0.d0,alfa(3))*min(0.d0,alfa(4))
219 l21=summaxk*max(0.d0,alfa(2))*min(0.d0,alfa(1))
220 l31=summaxk*max(0.d0,alfa(3))*min(0.d0,alfa(1))
221 l41=summaxk*max(0.d0,alfa(4))*min(0.d0,alfa(1))
222 l32=summaxk*max(0.d0,alfa(3))*min(0.d0,alfa(2))
223 l42=summaxk*max(0.d0,alfa(4))*min(0.d0,alfa(2))
224 l43=summaxk*max(0.d0,alfa(4))*min(0.d0,alfa(3))
234 l14 = max(alfa(1),0.d0)
236 l24 = max(alfa(2),0.d0)
237 l34 = max(alfa(3),0.d0)
240 l41 = - min(alfa(1),0.d0)
242 l42 = - min(alfa(2),0.d0)
243 l43 = - min(alfa(3),0.d0)
274 t(ielem,1) = -xm(01,ielem)-xm(02,ielem)-xm(03,ielem)
275 t(ielem,2) = -xm(04,ielem)-xm(05,ielem)-xm(07,ielem)
276 t(ielem,3) = -xm(06,ielem)-xm(08,ielem)-xm(10,ielem)
277 t(ielem,4) = -xm(09,ielem)-xm(11,ielem)-xm(12,ielem)
integer, dimension(6, 2) isegt
subroutine mt14tt(T, XM, LEGO, XMUL, SW, W, H, X, Y, IKLE, NELEM, NELMAX, NPLAN, NPOIN2)