Download dyne42.eso

Back to the list

   1 : C DYNE42    SOURCE    CHAT      05/01/12    23:17:52     5004           
   2 :         SUBROUTINE DYNE42(XROTA,XAXROT,IPOINT,ICDG,IDIMB,MERR)
   3 :       IMPLICIT INTEGER(I-N)
   4 :         IMPLICIT REAL*8(A-H,O-Z)
   5 : *---------------------------------------------------------------*
   6 : *                                                               *          
   7 : *     Opérateur DYNE : algorithme de Fu - de Vogelaere          *          
   8 : *     ________________________________________________          *          
   9 : *                                                               *          
  10 : *     Pour les corps rigides, calcul des fausses déformées      *
  11 : *     modales de rotation                   .                   *
  12 : *                                                               *
  13 : *     Paramètres                                                *
  14 : *                                                               *
  15 : *  es  XAXROT  Tableau contenant l'axe de rotation              *
  16 : *  e   MERR    Indique si le calcul s'est effectué correctement *
  17 : *  e   IPOINT  Numéro du point ou le calcul s'effectue          *
  18 : *  e   ICDG    Numéro du point centre de gravité du corps       *
  19 : *  e   IDIMB   Dimension de travail                             *
  20 : *                                                               *
  21 : *                                                               *
  22 : *     Auteur, date de création:                                 *          
  23 : *                                                               *          
  24 : *     Samuel DURAND      : le 10 Octobre 1996 : Création        * 
  25 : *                                                               *
  26 : *                                                               *
  27 : *                                                               *
  28 : *                                                               *
  29 : *---------------------------------------------------------------*
  30 : *
  31 : -INC CCOPTIO
  32 : -INC SMCOORD
  33 : *
  34 :         REAL*8  XROTA(2,*),XAXROT(3),XCDG(3),XPOINT(3)
  35 :         REAL*8  XXGP(3)
  36 : *
  37 :         XEPSI=0.000000000001
  38 :         IF (MERR.EQ.1) THEN
  39 :           DO 9 ID=1,IDIM
  40 : *   Coordonnées du centre de gravité G
  41 :             XCDG(ID)=XCOOR((ICDG-1)*(IDIM+1) +ID)
  42 : *   Coordonnées du point du maillage P
  43 :             XPOINT(ID) = XCOOR((IPOINT-1)*(IDIM+1) +ID)
  44 :  9        CONTINUE
  45 :             XPROJ = 0.D0
  46 :             DO 10 ID=1,IDIM
  47 :                 XXGP(ID) = XPOINT(ID) - XCDG(ID)
  48 :  10         CONTINUE
  49 :             IF (IDIM.EQ.3) THEN
  50 : *   Vecteur GP projetté sur le plan de rotation
  51 :                 DO 11 ID=1,IDIM
  52 :                     XPROJ = XPROJ + XXGP(ID)*XAXROT(ID)
  53 :  11             CONTINUE
  54 :                 DO 13 ID=1,IDIM
  55 :                     XROTA(1,ID) = XXGP(ID) - XPROJ*XAXROT(ID)
  56 :  13             CONTINUE
  57 :                 XROTA(2,1)=XAXROT(2)*XROTA(1,3)-XAXROT(3)*XROTA(1,2)
  58 :                 XROTA(2,2)=XAXROT(3)*XROTA(1,1)-XAXROT(1)*XROTA(1,3)
  59 :                 XROTA(2,3)=XAXROT(1)*XROTA(1,2)-XAXROT(2)*XROTA(1,1)
  60 :             ELSE
  61 :                   IF (XAXROT(1).GT.0) THEN
  62 :                       ISIGNE =1
  63 :                   ELSE
  64 :                       ISIGNE = -1
  65 :                   ENDIF
  66 :                 DO 14 ID=1,IDIM
  67 :                     XROTA(1,ID) = XXGP(ID) 
  68 :  14             CONTINUE
  69 :                     XROTA(2,1)=-ISIGNE*XROTA(1,2)
  70 :                     XROTA(2,2)= ISIGNE*XROTA(1,1)  
  71 :             ENDIF
  72 : *
  73 :         ELSE
  74 :             DO 18 ID=1,IDIM
  75 :                 XROTA(1,ID)=0.D0
  76 :                 XROTA(2,ID)=0.D0
  77 :  18         CONTINUE
  78 :         ENDIF
  79 : *   
  80 :             DO 20 ID=(IDIM+1),IDIMB
  81 :                 XROTA(1,ID)=0.D0
  82 :                 XROTA(2,ID)=0.D0
  83 :  20         CONTINUE
  84 :         END
  85 : 
  86 :  
  87 :  

© Cast3M 2003 - All rights reserved.
Disclaimer