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