C GEOCST    SOURCE    CHAT      05/01/13    00:17:47     5004
      SUBROUTINE GEOCST(XEL,GEOM)
C=======================================================================
C
C    CALCULE DES CONSTANTES D UN TRIANGLE POUR LE DKT
C
C  ENTREES
C    XEL(3,3)= COORDONNEES DE L ELEMENT
C  SORTIES
C    GEOM(17)=DES CONSTANTES POUR LE DKT
C
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION XEL(3,*),GEOM(*)
      DATA TROIS/3.D0/,SIX/6.D0/
      X12=XEL(1,1)-XEL(1,2)
      X23=XEL(1,2)-XEL(1,3)
      X31=XEL(1,3)-XEL(1,1)
      Y12=XEL(2,1)-XEL(2,2)
      Y23=XEL(2,2)-XEL(2,3)
      Y31=XEL(2,3)-XEL(2,1)
      AIREDO=-Y31*X12+Y12*X31
      VJ11=Y31/AIREDO
      VJ12=Y12/AIREDO
      VJ21=-X31/AIREDO
      VJ22=-X12/AIREDO
      XSQ12=X12*X12
      XSQ23=X23*X23
      XSQ31=X31*X31
      YSQ12=Y12*Y12
      YSQ23=Y23*Y23
      YSQ31=Y31*Y31
      DIST12=XSQ12+YSQ12
      DIST23=XSQ23+YSQ23
      DIST31=XSQ31+YSQ31
      CL4=-SIX*X23/DIST23
      CL5=-SIX*X31/DIST31
      CL6=-SIX*X12/DIST12
      SL4=-SIX*Y23/DIST23
      SL5=-SIX*Y31/DIST31
      SL6=-SIX*Y12/DIST12
      D4=TROIS*X23*Y23/DIST23
      D5=TROIS*X31*Y31/DIST31
      D6=TROIS*X12*Y12/DIST12
      SU4=TROIS*YSQ23/DIST23
      SU5=TROIS*YSQ31/DIST31
      SU6=TROIS*YSQ12/DIST12
      GEOM(1)=CL4
      GEOM(2)=CL5
      GEOM(3)=CL6
      GEOM(4)=SL4
      GEOM(5)=SL5
      GEOM(6)=SL6
      GEOM(7)=D4
      GEOM(8)=D5
      GEOM(9)=D6
      GEOM(10)=SU4
      GEOM(11)=SU5
      GEOM(12)=SU6
      GEOM(13)=VJ11
      GEOM(14)=VJ12
      GEOM(15)=VJ21
      GEOM(16)=VJ22
      GEOM(17)=AIREDO
      RETURN
      END

