Download d2vcoi.eso

Back to the list

   1 : C D2VCOI    SOURCE    CHAT      05/01/12    22:35:10     5004           
   2 : C DEVCOI    SOURCE    LAVARENN  96/11/05    21:21:28     2357           
   3 : C DEVCOI    SOURCE    IANIS      93/2/22    21:12:00                            
   4 :       SUBROUTINE D2VCOI(Q1,Q2,XDT,NA1,XPTB,NPLB,XPHILB,NSB,NPLSB,            
   5 :      &                  NA2,IDIMB,IBASB,IPLSB,INMSB,IORSB,IND,
   6 :      &                  IAROTA)                            
   7 :       IMPLICIT INTEGER(I-N)
   8 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   9 : *--------------------------------------------------------------------*          
  10 : *                                                                    *          
  11 : *     Opérateur DYNE : algorithme de Fu - de Vogelaere               *          
  12 : *     ________________________________________________               *          
  13 : *                                                                    *          
  14 : *     Recombinaison des déplacements  et des vitesses                *
  15 : *     aux points de choc  pour calculer XPTB  pour le 1er pas        *
  16 : *                                                                    *          
  17 : *                                                                    *          
  18 : *     Paramètres:                                                    *          
  19 : *                                                                    *          
  20 : * e   Q1      Tableau des déplacements généralisés.                  *
  21 : * e   Q2      Tableau des vitesses generalises                       *          
  22 : * e   NA1     Nombre total d'inconnues en base A.                    *          
  23 : * s   XPTB    Tableau des déplacements des points sur base B.        *          
  24 : * e   NPLB    Nombre total de points intervenant dans les liaisons.  *          
  25 : * e   XPHILB  Tableau des vecteurs propres aux points de liaisons.   *          
  26 : * e   NSB     Nombre de sous base.                                   *          
  27 : * e   NPLSB   Nombre total de points intervenant dans les liaisons   *          
  28 : *             dans une sous base.                                    *          
  29 : * e   NA2     Nombre total d'inconnues dans une sous base.           *          
  30 : * e   IDIMB   Nombre total de ddl retenus.                           *          
  31 : * e   IBASB   Indique dans quelle sous base appartient le point de   *          
  32 : *             liaison.                                               *          
  33 : * e   INMSB   Indique le nombre d'inconnues de la sous base.         *          
  34 : * e   IORSB   Donne l'indice du premier mode dans l'ensemble des     *          
  35 : *             modes.                                                 *          
  36 : * e   IPLSB   Dans une sous base, indique la position du point de    *          
  37 : *             liaison.                                               *          
  38 : * e   IAROTA  Indique la position des modes de rotation              *
  39 : * e   IND     Indice du pas.                                         *          
  40 : * e   XDT    Valeur des pas de temps                                 *          
  41 : *                                                                    *          
  42 : *     Auteur, date de création:                                      *          
  43 : *                                                                    *          
  44 : *     Ianis Politopoulos  22/02/93                                   *          
  45 : *                                                                    *          
  46 : *--------------------------------------------------------------------*          
  47 : *                                                                               
  48 :       INTEGER IBASB(*),INMSB(*),IORSB(*),IPLSB(*),IAROTA(*)                               
  49 :       REAL*8  XPHILB(NSB,NPLSB,NA2,*),Q1(NA1,*),Q2(NA1,*)
  50 :       REAL*8  XPTB(NPLB,4,*),XDT(*)                  
  51 : *  
  52 :       PDT = XDT(1)
  53 :       PDTS2 =  PDT
  54 :       IND2 = IND + 1                                                                              
  55 :       DO 10 IP = 1,NPLB                                                         
  56 :          ISB  = IBASB(IP)                                                       
  57 :          NA3  = INMSB(ISB)                                                      
  58 :          INA1 = IORSB(ISB) - 1                                                  
  59 :          IPLB = IPLSB(IP)
  60 :          IROT = IAROTA(ISB)                                                       
  61 :          DO 20 ID = 1,IDIMB                                                     
  62 :             XRET = 0.D0 
  63 :             XRETV = 0.D0                                                        
  64 :             DO 30 IN = 1,NA3                                                    
  65 :                INN = INA1 + IN                                                  
  66 :                XRET = XRET + XPHILB(ISB,IPLB,IN,ID) * Q1(INN,IND)
  67 :                XRETV = XRETV + XPHILB(ISB,IPLB,IN,ID) * Q2(INN,IND)               
  68 :  30            CONTINUE
  69 : *   Prise en compte des effets de rotation pour les corps rigides
  70 :             IF (IROT.NE.0) THEN 
  71 :                 XANGLE=Q1(IROT,IND)
  72 :                 VITROT=Q2(IROT,IND)
  73 : * Déplacements dus à la rotation
  74 :                     XRET =XRET + XPHILB(ISB,IPLB,NA3+1,ID)* 
  75 :      &(COS(XANGLE)-1)                                  
  76 :                     XRET =XRET + XPHILB(ISB,IPLB,NA3+2,ID)* SIN(XANGLE)  
  77 : * Vitesse due à la rotation
  78 :                     XRETV=XRETV+VITROT*(COS(XANGLE)*
  79 :      &XPHILB(ISB,IPLB,NA3+2,ID)-SIN(XANGLE)*XPHILB(ISB,IPLB,NA3+1,ID))
  80 :             ENDIF                                                          
  81 : *           end do                                                              
  82 :             XPTB(IP,IND,ID) = XRET
  83 :             XPTB(IP,IND2,ID) = XRET - (XRETV * PDTS2)                                      
  84 :  20         CONTINUE                                                            
  85 : *        end do                                                                 
  86 :  10      CONTINUE                                                               
  87 : *     end do                                                                    
  88 : *                                                                               
  89 :       END                                                                       
  90 :  
  91 :  
  92 :  

© Cast3M 2003 - All rights reserved.
Disclaimer