5 &(xaux,ad,ax,teta,ikle,npoin,nelem,nelmax,mesh,ielm3,nelem2,nplan,
69 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NPOIN,IELM3,NELEM2,NPLAN
70 INTEGER,
INTENT(IN) :: IKLE(nelmax,*),KNOLG(npoin)
72 DOUBLE PRECISION,
INTENT(IN) :: TETA
73 DOUBLE PRECISION,
INTENT(INOUT) :: XAUX(npoin,*),AX(nelmax,*)
74 DOUBLE PRECISION,
INTENT(INOUT) :: AD(npoin)
76 TYPE(bief_mesh) :: MESH
80 INTEGER I1,I2,I3,I4,I5,I6,IELEM,IAN,ICOM,NPOIN2,IPLAN,K
81 INTEGER S1,S2,S3,IT1,IT2,IELEM3D,L1,L2,ISEG
95 parameter( sto = reshape( (/
99 & 3, 5, 6, 0 /), shape=(/ 4,4 /) ) )
120 CALL ov(
'X=C ', x=xaux(1,1), c=0.d0, dim1=npoin)
121 CALL ov(
'X=CY ', x=xaux(1,2), y=ad, c=teta, dim1=npoin)
122 CALL ov(
'X=C ', x=xaux(1,3), c=0.d0, dim1=npoin)
124 CALL ov(
'X=CX ',x=ad, c=1.d0-teta, dim1=npoin)
140 xaux(i1,3)=xaux(i1,3)+teta*ax(ielem,03)
141 xaux(i2,3)=xaux(i2,3)+teta*ax(ielem,08)
142 xaux(i3,3)=xaux(i3,3)+teta*ax(ielem,12)
143 xaux(i4,1)=xaux(i4,1)+teta*ax(ielem,03)
144 xaux(i5,1)=xaux(i5,1)+teta*ax(ielem,08)
145 xaux(i6,1)=xaux(i6,1)+teta*ax(ielem,12)
147 ax(ielem,03)=ax(ielem,03)*(1.d0-teta)
148 ax(ielem,08)=ax(ielem,08)*(1.d0-teta)
149 ax(ielem,12)=ax(ielem,12)*(1.d0-teta)
153 ELSEIF(ielm3.EQ.51)
THEN 191 ielem3d=3*(iplan-1)*nelem2+ielem+(k-1)*nelem2
201 it1=
tetra(s1,s2,s3,k,l1)
202 it2=
tetra(s1,s2,s3,k,l2)
204 IF(it1.EQ.1.AND.it2.EQ.4)
THEN 205 xaux(i1,3)=xaux(i1,3)+teta*ax(ielem3d,sto(l1,l2))
206 xaux(i2,1)=xaux(i2,1)+teta*ax(ielem3d,sto(l1,l2))
207 ax(ielem3d,sto(l1,l2))=
208 & ax(ielem3d,sto(l1,l2))*(1.d0-teta)
209 ELSEIF(it1.EQ.4.AND.it2.EQ.1)
THEN 210 xaux(i1,1)=xaux(i1,1)+teta*ax(ielem3d,sto(l1,l2))
211 xaux(i2,3)=xaux(i2,3)+teta*ax(ielem3d,sto(l1,l2))
212 ax(ielem3d,sto(l1,l2))=
213 & ax(ielem3d,sto(l1,l2))*(1.d0-teta)
214 ELSEIF(it1.EQ.2.AND.it2.EQ.5)
THEN 215 xaux(i1,3)=xaux(i1,3)+teta*ax(ielem3d,sto(l1,l2))
216 xaux(i2,1)=xaux(i2,1)+teta*ax(ielem3d,sto(l1,l2))
217 ax(ielem3d,sto(l1,l2))=
218 & ax(ielem3d,sto(l1,l2))*(1.d0-teta)
219 ELSEIF(it1.EQ.5.AND.it2.EQ.2)
THEN 220 xaux(i1,1)=xaux(i1,1)+teta*ax(ielem3d,sto(l1,l2))
221 xaux(i2,3)=xaux(i2,3)+teta*ax(ielem3d,sto(l1,l2))
222 ax(ielem3d,sto(l1,l2))=
223 & ax(ielem3d,sto(l1,l2))*(1.d0-teta)
224 ELSEIF(it1.EQ.3.AND.it2.EQ.6)
THEN 225 xaux(i1,3)=xaux(i1,3)+teta*ax(ielem3d,sto(l1,l2))
226 xaux(i2,1)=xaux(i2,1)+teta*ax(ielem3d,sto(l1,l2))
227 ax(ielem3d,sto(l1,l2))=
228 & ax(ielem3d,sto(l1,l2))*(1.d0-teta)
229 ELSEIF(it1.EQ.6.AND.it2.EQ.3)
THEN 230 xaux(i1,1)=xaux(i1,1)+teta*ax(ielem3d,sto(l1,l2))
231 xaux(i2,3)=xaux(i2,3)+teta*ax(ielem3d,sto(l1,l2))
232 ax(ielem3d,sto(l1,l2))=
233 & ax(ielem3d,sto(l1,l2))*(1.d0-teta)
244 WRITE(
lu,*)
'GETTRIEBE: ELEMENT NOT IMPLEMENTED:',ielm3
257 CALL parcom2(xaux(1,1),xaux(1,2),xaux(1,3),
258 & npoin2,nplan,icom,ian,mesh)
subroutine ov(OP, X, Y, Z, C, DIM1)
integer, dimension(6, 2) isegt
integer function bief_nbpts(IELM, MESH)
integer, dimension(2, 2, 2, 3, 4) tetra
subroutine parcom2(X1, X2, X3, NPOIN, NPLAN, ICOM, IAN, MESH)
subroutine gettriebe(XAUX, AD, AX, TETA, IKLE, NPOIN, NELEM, NELMAX, MESH, IELM3, NELEM2, NPLAN, KNOLG)