C DEVEQ3    SOURCE    BP208322  18/12/20    21:15:25     10048          
      SUBROUTINE DEVEQ3(Q1,Q2,NA1,XASM,XM,PDT,NPAS,FTOTA,FINERT)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
*--------------------------------------------------------------------*
*                                                                    *
*     Operateur DYNE : algorithme de Fu - de Vogelaere               *
*     ________________________________________________               *
*                                                                    *
*     Calcul des deplacements generalises pour le second demi-pas    *
*     de temps.                                                      *
*                                                                    *
*     Param}tres:                                                    *
*                                                                    *
* es  Q1(.,.) Vecteur des deplacements generalises                   *
* e   Q2(.,.) Vecteur des vitesses generalisees                      *
* e   NA1     Nombre total d'inconnues dans la base A                *
* e   XASM    Vecteur des amortissements generalises                 *
* e   XM      Vecteur des masses generalisees                        *
* e   PDT     pas de temps                               *
* e   NPAS    Numero du pas de temps                                 *
* e   FTOTA   Forces exterieures totalisees, sur la base A           *
*                                                                    *
*     Auteur, date de creation:                                      *
*                                                                    *
*     Denis ROBERT-MOUGIN, le 19 mai 1989.                           *
*                                                                    *
*--------------------------------------------------------------------*
      REAL*8 Q1(NA1,*),Q2(NA1,*),FINERT(NA1,*)
      REAL*8 XASM(NA1,*),XM(NA1,*),FTOTA(NA1,*)
*
      AUX4 = PDT * PDT / 6.D0
*
*                       .       2
*     Q      = Q    + h Q    + h /6 ( G    + 2 G
*      i,m+1    i,m      i,m           i,m      i,m+1/2
*                     .        .
*              - A  ( Q    + 2 Q        ) )
*                 i    i,m      i,m+1/2
*
*
*     Boucle sur les inconnues de la base A
*
      DO 10 IA = 1,NA1
         UNSM2 = 1.D0 / ( XM(IA,1) - FINERT(IA,2) )
         UNSM3 = 1.D0 / ( XM(IA,1) - FINERT(IA,3) )
         AUX1 = XASM(IA,1) * ( ( Q2(IA,3) * UNSM3 )
     &                   + ( 2.D0 * Q2(IA,2) * UNSM2 ) )
         AUX2 = (FTOTA(IA,3)*UNSM3) + (2.D0*FTOTA(IA,2)*UNSM2)
         AUX3 = PDT * Q2(IA,3)
         Q1(IA,1) = Q1(IA,3) + AUX3 + ( AUX4 * (AUX2 - AUX1) )
 10      CONTINUE
*     end do
*
      END



 
 
