C LOCARA    SOURCE    OF166741  26/02/23    21:15:24     12446          

C-----------------------------------------------------------------------
C     DESCRIPTION FONCTIONNELLE :
C     -------------------------
C     Calcul de la longueur caracteristique d'un element, determinee
C     comme la distance maximale entre deux noeuds de l'element
C
C     INTERFACE :
C     ---------
C     ENTREE : IDIM   : INTEGER, nombre de dimensions d'espace
C     ENTREE : NBNN   : INTEGER, nombre de noeuds de l'element
C     ENTREE : XEL    : tableau de REAL*8 de dimensions (3,NBNN),
C                       coordonnees des noeuds de l'element
C                       Ce tableau a ete rempli par la routine DOXE
C                       appelee au prealable
C     SORTIE : LCARAC : REAL*8, longueur caracteristique de l'element
C-----------------------------------------------------------------------
      SUBROUTINE LOCARA(IDIM,NBNN,XEL,LCARAC)

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)

C     Arguments de l'interface
C
      INTEGER IDIM, NBNN
      REAL*8  XEL(3,NBNN), LCARAC
C
C     Variables locales
C
      INTEGER INO1, INO2, IX
      REAL*8  DIST
C-----------------------------------------------------------------------
      LCARAC=0.0D0
C
      IF (NBNN.GT.1) THEN
C
C        Determination de la distance maximale entre deux noeuds de
C        l'element
         DO 10 INO1=1,NBNN-1
            DO 11 INO2=INO1+1,NBNN
               DIST=0.0D0
               DO 12 IX=1,IDIM
                  DIST=DIST+(XEL(IX,INO2)-XEL(IX,INO1))**2
  12           CONTINUE
               LCARAC = MAX(LCARAC,DIST)
  11        CONTINUE
  10     CONTINUE
C
         LCARAC = SQRT(LCARAC)
      ENDIF
C
      RETURN
      END

 
