5 &(kx,ky,xel,yel,u,v,ikle,nelem,nelmax,xmul)
66 INTEGER,
INTENT(IN) :: NELEM,NELMAX
67 INTEGER,
INTENT(IN) :: IKLE(nelmax,*)
68 DOUBLE PRECISION,
INTENT(INOUT) :: KX(nelem),KY(nelem)
69 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*),XMUL
70 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,*),YEL(nelmax,*)
74 INTEGER IELEM,I1,I2,I3
76 DOUBLE PRECISION UMOY,VMOY,H,SUNORM,X2,X3,Y2,Y3
77 DOUBLE PRECISION SURFAC,GP1X,GP1Y,GP2X,GP2Y,GP3X,GP3Y
78 DOUBLE PRECISION A1,A2,A3,H1,H2,H3,C1,C2,C3,UNORM,VNORM
97 sunorm = 1.d0 / sqrt(gp1x**2+gp1y**2)
103 sunorm = 1.d0 / sqrt(gp2x**2+gp2y**2)
109 sunorm = 1.d0 / sqrt(gp3x**2+gp3y**2)
113 c3 = sqrt( x2**2 + y2**2 )
114 c1 = sqrt( (x3-x2)**2 + (y3-y2)**2 )
115 c2 = sqrt( x3**2 + y3**2 )
117 surfac = 0.5d0 * (x2*y3 - x3*y2)
125 umoy = u(i1) + u(i2) + u(i3)
126 vmoy = v(i1) + v(i2) + v(i3)
128 sunorm = 1.d0 / max( sqrt(umoy**2+vmoy**2) , 1.d-10 )
130 unorm = umoy * sunorm
131 vnorm = vmoy * sunorm
133 a1 = gp1x * unorm + gp1y * vnorm
134 a2 = gp2x * unorm + gp2y * vnorm
135 a3 = gp3x * unorm + gp3y * vnorm
137 IF(a1*h.GT.h1) h = h1
138 IF(a2*h.GT.h2) h = h2
139 IF(a3*h.GT.h3) h = h3
141 kx(ielem) = 0.33333333d0 * xmul * h * unorm
142 ky(ielem) = 0.33333333d0 * xmul * h * vnorm
subroutine kspg11(KX, KY, XEL, YEL, U, V, IKLE, NELEM, NELMAX, XMUL)