Télécharger dyne42.eso

Retour à la liste

Numérotation des lignes :

dyne42
  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.  
  32. -INC PPARAM
  33. -INC CCOPTIO
  34. -INC SMCOORD
  35. *
  36. REAL*8 XROTA(2,*),XAXROT(3),XCDG(3),XPOINT(3)
  37. REAL*8 XXGP(3)
  38. *
  39. XEPSI=0.000000000001
  40. IF (MERR.EQ.1) THEN
  41. DO 9 ID=1,IDIM
  42. * Coordonnées du centre de gravité G
  43. XCDG(ID)=XCOOR((ICDG-1)*(IDIM+1) +ID)
  44. * Coordonnées du point du maillage P
  45. XPOINT(ID) = XCOOR((IPOINT-1)*(IDIM+1) +ID)
  46. 9 CONTINUE
  47. XPROJ = 0.D0
  48. DO 10 ID=1,IDIM
  49. XXGP(ID) = XPOINT(ID) - XCDG(ID)
  50. 10 CONTINUE
  51. IF (IDIM.EQ.3) THEN
  52. * Vecteur GP projetté sur le plan de rotation
  53. DO 11 ID=1,IDIM
  54. XPROJ = XPROJ + XXGP(ID)*XAXROT(ID)
  55. 11 CONTINUE
  56. DO 13 ID=1,IDIM
  57. XROTA(1,ID) = XXGP(ID) - XPROJ*XAXROT(ID)
  58. 13 CONTINUE
  59. XROTA(2,1)=XAXROT(2)*XROTA(1,3)-XAXROT(3)*XROTA(1,2)
  60. XROTA(2,2)=XAXROT(3)*XROTA(1,1)-XAXROT(1)*XROTA(1,3)
  61. XROTA(2,3)=XAXROT(1)*XROTA(1,2)-XAXROT(2)*XROTA(1,1)
  62. ELSE
  63. IF (XAXROT(1).GT.0) THEN
  64. ISIGNE =1
  65. ELSE
  66. ISIGNE = -1
  67. ENDIF
  68. DO 14 ID=1,IDIM
  69. XROTA(1,ID) = XXGP(ID)
  70. 14 CONTINUE
  71. XROTA(2,1)=-ISIGNE*XROTA(1,2)
  72. XROTA(2,2)= ISIGNE*XROTA(1,1)
  73. ENDIF
  74. *
  75. ELSE
  76. DO 18 ID=1,IDIM
  77. XROTA(1,ID)=0.D0
  78. XROTA(2,ID)=0.D0
  79. 18 CONTINUE
  80. ENDIF
  81. *
  82. DO 20 ID=(IDIM+1),IDIMB
  83. XROTA(1,ID)=0.D0
  84. XROTA(2,ID)=0.D0
  85. 20 CONTINUE
  86. END
  87.  
  88.  
  89.  
  90.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales