Télécharger hbmdmat.eso

Retour à la liste

Numérotation des lignes :

hbmdmat
  1. C HBMDMAT SOURCE OF166741 26/05/11 21:15:09 12538
  2.  
  3. *=======================================================================
  4. * Derivation dans le domaine frequentiel : cas matriciel
  5. * Ms = w*Me*kron(L,In)
  6. * e NT,NDDL : nombre de coefficients, ddl
  7. * e OMEG : coefficient
  8. * es Ms : matrice d'entree/sortie
  9. *=======================================================================
  10.  
  11. SUBROUTINE HBMDMAT(NT,NDDL,OMEG,Ms)
  12.  
  13. IMPLICIT INTEGER(I-N)
  14. IMPLICIT REAL*8(A-H,O-Z)
  15.  
  16. -INC TMDYNC
  17. POINTEUR Me.MATWRK, Ms.MATWRK
  18.  
  19. NHBM = ((NT/NDDL)-1)/2
  20. c copie locale : Ms(:,:) --> Me(:,:)
  21. c* nmc = NT
  22. c* nmc = Ms.MATRC(/1) = MS.MATRC(/2) = NT !
  23. c* CALL COPYMAT(NT,Ms.MATRC,Me.MATRC)
  24. SEGINI,Me=Ms
  25.  
  26. c Premiere colonne de blocs: termes statiques
  27. DO J = 1, NDDL
  28. DO I = 1, NT
  29. Ms.MATRC(I,J) = 0.D0
  30. ENDDO
  31. ENDDO
  32. c Boucle sur les lignes de blocs
  33. DO I = 1,2*NHBM+1
  34. c Boucle sur les harmoniques (colonnes)
  35. DO J = 2,2*NHBM,2
  36. Cf = OMEG*(J/2)
  37. c Permutation des blocs
  38. DO JJ=1,NDDL
  39. j_z1 = (J-1)*NDDL + JJ
  40. j_z2 = j_z1 + NDDL
  41. DO II = 1, NDDL
  42. i_z = (I-1)*NDDL + II
  43. Ms.MATRC(i_z,j_z1) = -Cf*Me.MATRC(i_z,j_z2)
  44. Ms.MATRC(i_z,j_z2) = Cf*Me.MATRC(i_z,j_z1)
  45. ENDDO
  46. ENDDO
  47. ENDDO
  48. ENDDO
  49.  
  50. SEGSUP,Me
  51.  
  52. RETURN
  53. END
  54.  
  55.  
  56.  

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