5 &(u,v,x,y,ikle,nelem,nelmax,w1)
61 INTEGER ,
INTENT(IN) :: NELEM,NELMAX
62 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*)
63 DOUBLE PRECISION,
INTENT(IN) :: X(nelmax*3),Y(nelmax*3)
64 INTEGER ,
INTENT(IN) :: IKLE(nelmax*4)
65 DOUBLE PRECISION,
INTENT(OUT) :: W1(nelmax*4)
69 INTEGER IELEM,IT,IAD1,IAD2,IAD3,IG1,IG2,IG3
71 DOUBLE PRECISION USUR2,VSUR2
72 DOUBLE PRECISION SUR6,K1,K2,K3,L12,L13,L21,L23,L31,L32
73 DOUBLE PRECISION X1,X2,X3,Y1,Y2,Y3,TIERS
84 parameter( il = reshape( (/
85 & 1,2,3,2,3,1,4,4,4 /), shape=(/ 3,3 /) ) )
94 DO ielem = 1 , 4*nelmax
105 iad1= ielem + (il(it,1)-1)*nelmax
106 iad2= ielem + (il(it,2)-1)*nelmax
107 iad3= ielem + (il(it,3)-1)*nelmax
118 x3=tiers*(x(ielem)+x(ielem+nelmax)+x(ielem+2*nelmax))-x1
119 y3=tiers*(y(ielem)+y(ielem+nelmax)+y(ielem+2*nelmax))-y1
121 usur2 = (u(ig1)+u(ig2)+u(ig3))*sur6
122 vsur2 = (v(ig1)+v(ig2)+v(ig3))*sur6
124 k1 = usur2 * (y2-y3) - vsur2 * (x2-x3)
125 k2 = usur2 * (y3 ) - vsur2 * (x3 )
126 k3 = usur2 * ( -y2) - vsur2 * ( -x2)
128 l12 = max( min(k1,-k2) , 0.d0 )
129 l13 = max( min(k1,-k3) , 0.d0 )
130 l21 = max( min(k2,-k1) , 0.d0 )
131 l23 = max( min(k2,-k3) , 0.d0 )
132 l31 = max( min(k3,-k1) , 0.d0 )
133 l32 = max( min(k3,-k2) , 0.d0 )
135 w1(iad1) = w1(iad1) + l12 + l13
136 w1(iad2) = w1(iad2) + l21 + l23
137 w1(iad3) = w1(iad3) + l31 + l32
subroutine cflp12(U, V, X, Y, IKLE, NELEM, NELMAX, W1)