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