C DYCHAM2   SOURCE    BP208322  19/02/25    21:15:47     10120          
C DYCHAM2    SOURCE    LAVARENN  96/08/05    21:17:56     2237
      SUBROUTINE DYCHAM2(XDEP,XVIT,XJEU,XAMO,XABSCI,XORDON,NIP,
     &            NLIAB,I,XFL,IPERM,iannul)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
*--------------------------------------------------------------------*
*                                                                    *
*     Operateur DYNE                                                 *
*     ________________________________________________               *
*                                                                    *
*     Calcul de la force de choc pour un choc elementaire.           *
*                Cas d'une LOI_DE_COMPORTEMENT elastique             *
*     Parametres:                                                    *
*                                                                    *
* e   XDEP    Valeur du d{placement.                                 *
* e   XVIT    Valeur de la vitesse.                                  *
* e   XJEU    Valeur du jeu.                                         *
* e   XAMO    Valeur de l'amortissement.                             *
* e   IPERM   =1 si liaison permanente                               *
* e   XABSCI  Abscisses loi elastique                                *
* e   XORDON  Ordonnees loi elastique                                *
*                                                                    *
*  s  XFL     Valeur de la force de choc.                            *
*                                                                    *
*                                                                    *
*     Auteur, date de creation:                                      *
*                                                                    *
*     Bruno FONTAINE, le 26/02/98                                    *
*                                                                    *
*--------------------------------------------------------------------*
      REAL*8 XABSCI(NLIAB,*),XORDON(NLIAB,*)
      XFL = 0.D0
*
cbp      if (iannul.eq.0) then

      IF (IPERM.EQ.2) THEN
cbp        XVAL = abs(XDEP)
        XVAL = abs(XDEP-XJEU)
        CALL LIRANG(XVAL,XABSCI,XORDON,I,NLIAB,NRG,XPENTE,NIP)
        XFLA = (XORDON(I,NRG) + XPENTE*(XVAL-XABSCI(I,NRG)))
cbp        IF (XDEP.LT.0D0) XFLA = -XFLA
        IF (XDEP.LT.XJEU) XFLA = -XFLA
        XFL = -XFLA - XAMO * XVIT
      ELSE
cbp         IF (XDEP.GE.XJEU) THEN
        IF ((XDEP.GE.XJEU).AND.(iannul.EQ.0)) THEN
            XVAL = XDEP - XJEU
            CALL LIRANG(XVAL,XABSCI,XORDON,I,NLIAB,NRG,XPENTE,NIP)
            XFL = - (XORDON(I,NRG) + XPENTE*(XVAL-XABSCI(I,NRG)))
     &            - XAMO * XVIT
            IF (XFL.GT.0.D0) XFL = 0.D0
        ENDIF
      ENDIF

cbp      endif
*
*
      END





 
