Télécharger hbmzx.eso

Retour à la liste

Numérotation des lignes :

hbmzx
  1. C HBMZX SOURCE BP208322 20/10/05 21:15:22 10742
  2.  
  3. SUBROUTINE HBMZX(NT,NDDL,ISD,X,OMEG,XM,XC,XK,ZX,LOGAMO)
  4.  
  5. *=======================================================================
  6. * ZX: calcul du produit Z(w)*X
  7. *
  8. * Z : Matrice de raideur dynamique
  9. * = | w²*kron(DL²,M) + w*kron(DL,C) + kron(I,K) si LOGAMO
  10. * | w²*kron(DL²,M) + kron(I,K) sinon
  11. * X : coefficients de Fourier
  12. * w : frequence
  13. *=======================================================================
  14.  
  15.  
  16. *----- Declarations ----------------------------------------------------
  17.  
  18. IMPLICIT INTEGER(I-N)
  19. IMPLICIT REAL*8(A-H,O-Z)
  20.  
  21. REAL*8 X(NT),ZX(NT),OMEG
  22. REAL*8 XM(NDDL,NDDL),XC(NDDL,NDDL),XK(NDDL,NDDL)
  23. REAL*8 CF
  24. INTEGER NT,NDDL,ISD,H,I,J,M,P,Q
  25. LOGICAL LOGAMO
  26.  
  27. * Nombre d'harmoniques
  28. NH = (NT/NDDL - 1)/2
  29. *
  30.  
  31. *------ Matrices diagonales --------------------------------------------
  32. IF (ISD.EQ.1) THEN
  33.  
  34. * Termes constants
  35. DO 1 P=1,NDDL
  36. ZX(P) = XK(P,1)*X(P)
  37. 1 CONTINUE
  38. *
  39. c -cas non conservatif (i.e. avec amortissement)
  40. IF (LOGAMO) THEN
  41.  
  42. DO 10 J=1,2*NH
  43. * Termes paires (sin)
  44. IF (MOD(J,2).EQ.0) THEN
  45. cf = -J/2.D0
  46. DO 11 I = 1,NDDL
  47. ZX(J*nddl+I)=(XK(I,1)-((OMEG*cf)**2)*XM(I,1))*x(J*nddl+I)+
  48. & OMEG*cf*XC(I,1)*x((J-1)*nddl+I)
  49. 11 CONTINUE
  50. * Termes impaires (cos)
  51. ELSE
  52. cf = (J+1)/2.D0
  53. DO 12 I = 1,NDDL
  54. ZX(J*nddl+I)=(XK(I,1)-((OMEG*cf)**2)*XM(I,1))*
  55. & X(J*nddl+I)+ OMEG*cf*XC(I,1)*x((J+1)*NDDL+I)
  56. 12 CONTINUE
  57. ENDIF
  58. 10 CONTINUE
  59.  
  60. c -cas conservatif (i.e. sans amortissement)
  61. ELSE
  62. DO 20 J=1,2*NH
  63. * Termes paires (sin)
  64. IF (MOD(J,2).EQ.0) THEN
  65. cf = -J/2.D0
  66. DO 21 I = 1,NDDL
  67. ZX(J*nddl+I)=(XK(I,1)-((OMEG*cf)**2)*XM(I,1))*x(J*nddl+I)
  68. 21 CONTINUE
  69. * Termes impaires (cos)
  70. ELSE
  71. cf = (J+1)/2.D0
  72. DO 22 I = 1,NDDL
  73. ZX(J*nddl+I)=(XK(I,1)-((OMEG*cf)**2)*XM(I,1))*
  74. & X(J*nddl+I)
  75. 22 CONTINUE
  76. ENDIF
  77. 20 CONTINUE
  78. ENDIF
  79.  
  80.  
  81. *------ Matrices generales ---------------------------------------------
  82. ELSE
  83.  
  84. * Termes constants
  85. DO 101 P=1,NDDL
  86. DO 102 Q=1,NDDL
  87. ZX(P) = ZX(P) + XK(P,Q)*X(Q)
  88. 102 CONTINUE
  89. 101 CONTINUE
  90.  
  91. c -cas non conservatif (i.e. avec amortissement)
  92. IF (LOGAMO) THEN
  93.  
  94. DO 111 J=2,2,2*NH
  95. DO 112 M=1,NDDL
  96. ZX(J*NDDL+M) = 0.D0
  97. DO 113 H=1,NDDL
  98. ZX(J*NDDL+M)=ZX(J*NDDL+M)+(XK(M,H)-((J*OMEG)**2)*XM(M,H))
  99. & *X(J*NDDL+H)+(J*OMEG)*XC(M,H)*X((J+1)*NDDL+H)
  100. ZX((J+1)*NDDL+M)=ZX((J+1)*NDDL+M)-(XK(M,H)+((J*OMEG)**2)
  101. & *XM(M,H))*X((J+1)*NDDL+H)-(J*OMEG)*XC(M,H)*X(J*NDDL+H)
  102. 113 CONTINUE
  103. 112 CONTINUE
  104. 111 CONTINUE
  105.  
  106. c -cas conservatif (i.e. sans amortissement)
  107. ELSE
  108. DO 121 J=2,2,2*NH
  109. DO 122 M=1,NDDL
  110. ZX(J*NDDL+M) = 0.D0
  111. DO 123 H=1,NDDL
  112. ZX(J*NDDL+M)=ZX(J*NDDL+M)+(XK(M,H)-((J*OMEG)**2)*XM(M,H))
  113. & *X(J*NDDL+H)
  114. ZX((J+1)*NDDL+M)=ZX((J+1)*NDDL+M)+(XK(M,H)-((J*OMEG)**2)
  115. & *XM(M,H))*X((J+1)*NDDL+H)
  116. 123 CONTINUE
  117. 122 CONTINUE
  118. 121 CONTINUE
  119.  
  120. ENDIF
  121.  
  122. ENDIF
  123.  
  124. RETURN
  125. END
  126.  
  127.  
  128.  
  129.  
  130.  

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