Télécharger lump2.eso

Retour à la liste

Numérotation des lignes :

lump2
  1. C LUMP2 SOURCE CHAT 05/01/13 01:26:58 5004
  2. SUBROUTINE LUMP2(REL,LRE,RE,IFOUR)
  3. c====================================================================
  4. c
  5. c utilisé par l'opérateur LUMP
  6. c
  7. c remplissage de RE à partir de
  8. c rel (lre,lre) matrice de rigidite triangulaire
  9. c inferieure.
  10. c
  11. c méthode HRZ
  12. c on diagonalise la matrice en conservant le rapport
  13. c des termes diagonaux de la matrice consistante
  14. c et en corrigeant pour assurer que la masse est conservée
  15. c
  16. c on suppsoe que RE est initialisée à 0
  17. c
  18. c====================================================================
  19. IMPLICIT INTEGER(I-N)
  20. IMPLICIT REAL*8(A-H,O-Z)
  21. DIMENSION REL(LRE,*),RE(LRE,*)
  22. *
  23. *
  24. IF ( IFOUR .EQ. -3) LRE=LRE-3
  25. *
  26. * calcul de la masse de l'element
  27. *
  28. SUM1 = 0.D0
  29. SUM2 = 0.D0
  30. DO 200 IA=1,LRE
  31. DO 100 IB=1,LRE
  32. I = MAX(IA,IB)
  33. J = MIN(IA,IB)
  34. SUM1 = SUM1 + REL(I,J)
  35. 100 CONTINUE
  36. SUM2 = SUM2 + REL(IA,IA)
  37. 200 CONTINUE
  38. *
  39. * normalisation
  40. RAP = SUM1 / SUM2
  41. DO 300 I=1,LRE
  42. RE(I,I)=REL(I,I)*RAP
  43. 300 CONTINUE
  44. *
  45. * cas des déformations planes généralisées
  46. * la diagonalisation est différente pour les ddl transverses
  47. IF ( IFOUR .EQ. -3) THEN
  48. * inconnue RX
  49. RE(LRE+2,LRE+2)=(REL(LRE+2,LRE+2)+REL(LRE+3,LRE+3))/2.D0
  50. * inconue RY
  51. RE(LRE+3,LRE+3)=RE(LRE+2,LRE+2)
  52. * inconnue UZ
  53. RE(LRE+1,LRE+1)=REL(LRE+1,LRE+1)
  54. LRE = LRE + 3
  55. ENDIF
  56. *
  57. RETURN
  58. END
  59.  
  60.  
  61.  

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