Download devcoi.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer