C D2VTRI    SOURCE    BP208322  17/07/18    21:15:02     9498           
C DEVTRI    SOURCE    LAVARENN  96/10/30    21:22:46     2349
      SUBROUTINE D2VTRI(Q1,Q2,Q3,NA1,IINS2,FTOTA,XRES,ICHRES,NRES,
     &                  NCRES,NPRES,XVALA,INULA,NLIAA,NLSA,XRESLA,
     &                  XVALB,INULB,NLIAB,NLSB,XRESLB,ILIREA,ILIREB,
     &                  NTVAR,WEXT,WINT,XCHPFB,NPLB)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
*--------------------------------------------------------------------*
*                                                                    *
*     Operateur DYNE : algorithme de Fu - de Vogelaere               *
*     ________________________________________________               *
*                                                                    *
*     Transfert des quantites initiales dans le tableau de           *
*     sauvegarde, si l'on souhaite les garder ...                    *
*                                                                    *
*     Param}tres:                                                    *
*                                                                    *
* e   Q1(.,.) Vecteur des deplacements generalises                   *
* e   Q2(.,.) Vecteur des vitesses generalises                       *
* e   Q3(.,.) Vecteur des accelerations generalises                  *
* e   NA1     Nombre total d'inconnues en base A                     *
* e   IINS2   Numero du pas de sortie                                *
* e   FTOTA   Forces exterieures totalisees en base A                *
* es  XRES    Valeurs des variables sauvegardees                     *
* e   ICHRES  Indique quelles variables seront sauvegardees          *
* e   NRES    Nombre de variables ( principales et auxilliaires )    *
* e   NCRES   Nombre de valeurs prises par les variables             *
* e   NPRES   Nombre de pas de sortie                                *
* e   XVALA   Tableau contenant les variables internes de liaison    *
* e   INULA   Tableau contenant les rep}res des liaisons             *
* e   NLIAA   Nombre de liaisons sur la base A                       *
* e   NLSA    Nombre de liaisons en sortie bas A                     *
* es  XRESLA  Valeurs de variables de liaisons sauvegardees base B   *
* e   XVALB   Tableau contenant les variables internes de liaison    *
* e   INULB   Tableau contenant les rep}res des liaisons             *
* e   NLIAB   Nombre de liaisons sur la base B                       *
* e   NLSB    Nombre de liaisons en sortie bas B                     *
* es  XRESLB  Valeurs de variables de liaisons sauvegardees base B   *
* e,s WEXT   travail des forces exterieures
* e,s WINT   travail des forces interieures (rigidite et
*            amortissement et forces de liaison )
*                                                                    *
*     Auteur, date de creation:                                      *
*                                                                    *
*     Lionel VIVAN, le 1 septembre 1989.                             *
*                                                                    *
*--------------------------------------------------------------------*
      REAL*8 Q1(NA1,*),Q2(NA1,*),Q3(NA1,*)
      REAL*8 XVALA(NLIAA,4,*),XRESLA(NLSA,NPRES,*)
      REAL*8 XVALB(NLIAB,4,*),XRESLB(NLSB,NPRES,*)
      REAL*8 FTOTA(NA1,*),XRES(NRES,NCRES,*)
      REAL*8 XCHPFB(2,NLIAB,4,*)
      INTEGER ICHRES(*),INULA(*),INULB(*),ILIREA(NLSA,*),ILIREB(NLSB,*)
*
*     Sauvegarde des valeurs initiales
*
      IF (NRES.NE.0) THEN
         KRES = 0
         
c       +deplacement 
         IF (ICHRES(1).GE.1) THEN
            KRES = KRES + 1
            DO 10 I=1,NA1
               XRES(KRES,I,IINS2) = Q1(I,2)
 10         CONTINUE
         ENDIF
c       +vitesse 
         IF (ICHRES(2).GE.1) THEN
            KRES = KRES + 1
            DO 12 I=1,NA1
               XRES(KRES,I,IINS2) = Q2(I,2)
 12         CONTINUE
         ENDIF

c       +acceleration 
         IF (ICHRES(5).GE.1) THEN
            KRES = KRES + 1
            DO 18 I=1,NA1
               XRES(KRES,I,IINS2) = Q3(I,2)
 18         CONTINUE
         ENDIF

c       +travail exterieur
         IF (ICHRES(7).GE.1) THEN
            KRES = KRES + 1
            DO 60 I=1,NA1
               XRES(KRES,I,IINS2) = 0.d0
 60            CONTINUE
         ENDIF
c       +travail interieur
         IF (ICHRES(8).GE.1) THEN
            KRES = KRES + 1
            DO 70 I=1,NA1
               XRES(KRES,I,IINS2) = 0.d0
 70         CONTINUE
         ENDIF

      ENDIF
      
c    +liaisons_A
      IF (ICHRES(9).GE.1) THEN
         DO 30 IL = 1,NLSA
            IIL = INULA(IL)
            II = 0
            DO 32 IV = 1,NTVAR
               IF (ILIREA(IL,IV).EQ.1) THEN
                  II = II + 1
                  XRESLA(IL,IINS2,II) = XVALA(IIL,2,IV)
               ENDIF
 32         CONTINUE
 30      CONTINUE
      ENDIF
c    +liaisons_B
      IF (ICHRES(10).GE.1) THEN
         DO 40 IL = 1,NLSB
            IIL = INULB(IL)
            II = 0
            DO 42 IV = 1,NTVAR
               IF (ILIREB(IL,IV).EQ.1) THEN
                  II = II + 1
                  XRESLB(IL,IINS2,II) = XVALB(IIL,2,IV)
               ELSE
                  IF (ILIREB(IL,IV).EQ.2) THEN
                   DO 43 IP=1,NPLB
                    DO 44 ID=1,2
                      II = II + 1
                      XRESLB(IL,IINS2,II) = XCHPFB(ID,IIL,2,IP)
 44                 CONTINUE
 43                CONTINUE
                  ENDIF
*
               ENDIF
 42          CONTINUE
 40       CONTINUE
      ENDIF
*
      END




 
