C NDKT      SOURCE    CHAT      05/01/13    01:56:26     5004
      SUBROUTINE NDKT (IGAU,XEL,EXCENT,SHPTOT,SHP,XGENE,DJAC)
************************************************************************
*
*                             N D K T
*                             -------
*
* FONCTION:
* ---------
*
*     CALCUL DE LA MATRICE "N" EN UN POINT DE GAUSS DE L'ELEMENT "DKT",
*     POUR LE CALCUL DE LA MATRICE-MASSE = SOMME SUR L'ELEMENT DE "NT.N"
*
*     FORME DE LA MATRICE "N":
*
*        A1 00 E1 F1 G1 00  A2 00 E2 F2 G2 00  A3 00 E3 F3 G3 00
*        00 A1 H1 I1 J1 00  00 A2 H2 I2 J2 00  00 A3 H3 I3 J3 00
*        00 00 B1 C1 D1 00  00 00 B2 C2 D2 00  00 00 B3 C3 D3 00
*
*     LES TERMES "E" A "J" SONT NON NULS LORSQUE L'ELEMENT EST EXCENTRE.
*
* MODULES UTILISES:
* -----------------
*
      IMPLICIT INTEGER(I-N)
-INC CCREEL
*
* PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)
* -----------
*
*     IGAU    (E)  NUMERO DU POINT DE GAUSS.
*     XEL     (E)  COORDONNEES LOCALES DES NOEUDS DE L'ELEMENT
*                  (1 NOEUD PAR COLONNE).
*     EXCENT  (E)  VALEUR D'EXCENTREMENT DE L'ELEMENT.
*     SHPTOT  (E)  FONCTIONS DE FORMES ET DERIVEES (DANS L'ORDRE USUEL).
*     SHP     E/S  TABLEAU DE TRAVAIL.
*     XGENE   (S)  MATRICE "N".
*     DJAC    (S)  JACOBIEN.
*
      INTEGER IGAU
      REAL*8 EXCENT,DJAC
      REAL*8 XEL(3,3),SHPTOT(6,3,*),SHP(6,3),XGENE(3,18)
*
* CONSTANTES:
* -----------
*
*     XX, YY = COORDONNEES DANS LE TRIANGLE DE REFERENCE DES POINTS DE
*              GAUSS.
*
      PARAMETER (NBNO = 3)
      REAL*8 XX(3),YY(3)
*
* VARIABLES:
* ----------
*
      REAL*8 BB(18)
*
* AUTEUR, DATE DE CREATION:
* -------------------------
*
*     PASCAL MANIGOT     15 JUIN 1987
*
* LANGAGE:
* --------
*
*     FORTRAN77 + EXTENSION: DECLARATION "REAL*8".
*
************************************************************************
*
      DATA XX/.5D0,.0D0,.5D0/
      DATA YY/.0D0,.5D0,.5D0/
*
      CALL ZERO(XGENE,3,18)
*
      DO 127 NPOI=1,NBNO
      SHP(1,NPOI)=SHPTOT(1,NPOI,IGAU)
      SHP(2,NPOI)=SHPTOT(2,NPOI,IGAU)
  127 SHP(3,NPOI)=SHPTOT(3,NPOI,IGAU)
      CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
*     RQ: A CE NIVEAU, SHP(2,*) ET SHP(3,*) CONTIENNENT LES DERIVEES
*         DANS L'ESPACE GEOMETRIQUE.
      K=1
      DO 227 NPOI=1,NBNO
      XGENE(1,K  )=SHP(1,NPOI)
      XGENE(2,K+1)=SHP(1,NPOI)
  227 K=K+6
      CALL MFDKT (XX(IGAU),YY(IGAU),XEL,BB)
      KK=3
      IA=1
      DO 327 NPOI=1,NBNO
      XGENE(3,KK  )=BB(IA  )
      XGENE(3,KK+1)=BB(IA+1)
      XGENE(3,KK+2)=BB(IA+2)
      KK=KK+6
      IA=IA+3
 327  CONTINUE
*
      IF (ABS(EXCENT) .GT. XPETIT) THEN
         CALL MFDKT2 (XX(IGAU),YY(IGAU),XEL,BB)
         KK=3
         IA=1
*
*  CORRECTION P. MANIGOT  : CHANGEMENT DE SIGNE DES EXCENTREMENTS
*
         DO 427 NPOI=1,NBNO
         XGENE(1,KK  )= EXCENT*BB(IA)
         XGENE(1,KK+1)= EXCENT*BB(IA+1)
         XGENE(1,KK+2)= EXCENT*BB(IA+2)
         XGENE(2,KK  )= EXCENT*BB(IA+ 9)
         XGENE(2,KK+1)= EXCENT*BB(IA+10)
         XGENE(2,KK+2)= EXCENT*BB(IA+11)
         KK=KK+6
         IA=IA+3
 427     CONTINUE
      END IF
*
      END



