C DYCHGL    SOURCE    CHAT      05/01/12    23:06:07     5004
      SUBROUTINE DYCHGL(IDIM,IGP,XPALB,NLIAB,I,I0,I1,XGLIS,XFN,XFT,
     &                  XPUS)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
*--------------------------------------------------------------------*
*                                                                    *
*     Op{rateur DYNE : algorithme de Fu - de Vogelaere               *
*     ________________________________________________               *
*                                                                    *
*     Calcul de la force de glissement                               *
*                                                                    *
*     Param}tres:                                                    *
*                                                                    *
* es  XPALB   Tableau contenant les param}tres de la liaison         *
* e   NLIAB   Nombre de liaisons sur la base B                       *
* e   I       Num{ro de la liaison                                   *
* e   I0      Pointeur de la vitesse tangentielle dans XPALB         *
* e   I1      Pointeur de la force tangentielle dans XPALB           *
* e   XFN     Valeur de la force de choc suivant la normale.         *
* e   XGLIS   Valeur du coefficient d'adh{rence                      *
*  s  IGP     Indice de glissement au pas pr{c{dent                  *
*  s  XFT     Module de la force de choc projet{e sur le plan tangent*
*  s  XPUS    Valeur de la puissance d'usure instantan{e             *
*                                                                    *
*                                                                    *
*     Auteur, date de cr{ation:                                      *
*                                                                    *
*     Bertrand BEAUFILS, le 31 mai 1990.                             *
*                                                                    *
*--------------------------------------------------------------------*
      DIMENSION XPALB(NLIAB,*)
      XFT = - XGLIS * ABS(XFN)
      IGP = 1
*
      PSVITT = 0.D0
      DO 10 ID = 1,IDIM
          PSVITT = PSVITT + XPALB(I,I0+ID) * XPALB(I,I0+ID)
 10       CONTINUE
*     end do
      VITT = SQRT(PSVITT)
      XPUS = ABS(XFN * VITT)
*
      IF (VITT.GT.1.D-20) THEN
         DO 11 ID = 1,IDIM
            XPALB(I,I1+ID) = XFT * XPALB(I,I0+ID) / VITT
 11         CONTINUE
*        end do
      ELSE
         DO 12 ID = 1,IDIM
            XPALB(I,I1+ID) = 0.D0
 12         CONTINUE
*        end do
      ENDIF
*
      RETURN
      END

