Télécharger hbmz.eso

Retour à la liste

Numérotation des lignes :

hbmz
  1. C HBMZ SOURCE OF166741 26/05/11 21:15:16 12538
  2.  
  3. *=======================================================================
  4. * Calcule la matrice de raideur dynamique Z
  5. *
  6. * Z = [ Z0 0 0 ... ]
  7. * [ Z1 0 ... ]
  8. * [ ... ]
  9. * [ Zh ]
  10. *
  11. * avec Zj = | [ K-(jw)²M jwC ] si LOGAMO
  12. * | [ -jwC K-(jw)²M ]
  13. * |
  14. * | [ K-(jw)²M ] si .not.LOGAMO
  15. * | [ K-(jw)²M ]
  16. *
  17. * TODO : prevoir le cas des matrices non diagonales
  18. *=======================================================================
  19.  
  20. SUBROUTINE HBMZ(NT,NHBM,NDDL,KTQ,KTKAM,LOGAMO)
  21.  
  22. *----- Declarations ----------------------------------------------------
  23.  
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8(A-H,O-Z)
  26.  
  27. -INC TMDYNC
  28.  
  29. INTEGER NT,NHBM,NDDL
  30. LOGICAL LOGAMO
  31.  
  32. INTEGER I,J,K,L,M,P,PK,KM,KK,KASM
  33. REAL*8 AA,BB
  34.  
  35. * Segment des variables
  36. MTQ=KTQ
  37. * Segment des proprietes mecaniques
  38. MTKAM=KTKAM
  39.  
  40. *----- Initialisation --------------------------------------------------
  41. * test ici mais a replacer an amont + tard
  42. if (XK(/2).ne.1) call erreur(5)
  43.  
  44. DO J = 1,NT
  45. DO I = 1,NT
  46. ZZ(I,J)=0.D0
  47. ENDDO
  48. ENDDO
  49.  
  50. *----- Remplissage (cas K, C et M diagonales uniquement) ---------------
  51.  
  52. c harmonique 0
  53. DO M=1,NDDL
  54. ZZ(M,M) = XK(M,1)
  55. ENDDO
  56.  
  57. c harmoniques > 0
  58. c -cas non conservatif (i.e. avec amortissement)
  59. IF (LOGAMO) THEN
  60. DO J=2,2*NHBM,2
  61. DO I=1,NDDL
  62. AA = XK(I,1) - ((OMEG*J/2)**2)*XM(I,1)
  63. BB = (OMEG*J/2)*XASM(I,1)
  64. ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-2))+I) = AA
  65. ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-1))+I) = BB
  66. ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-2))+I) = -BB
  67. ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-1))+I) = AA
  68. ENDDO
  69. ENDDO
  70. c -cas conservatif (i.e. sans amortissement)
  71. ELSE
  72. DO J=2,2*NHBM,2
  73. DO I=1,NDDL
  74. AA = XK(I,1) - ((OMEG*J/2)**2)*XM(I,1)
  75. ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-2))+I) = AA
  76. ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-1))+I) = 0.D0
  77. ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-2))+I) = 0.D0
  78. ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-1))+I) = AA
  79. ENDDO
  80. ENDDO
  81. ENDIF
  82.  
  83. RETURN
  84. END
  85.  
  86.  
  87.  

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