Télécharger coq2co.eso

Retour à la liste

Numérotation des lignes :

  1. C COQ2CO SOURCE CHAT 06/03/29 21:17:23 5360
  2. SUBROUTINE COQ2CO(Q,E,RHO,IMATMA,IFOUR,NIFOU,LRE,
  3. + AMM,IARR,XDPGE,YDPGE,VROT)
  4. C
  5. C***********************************************************************
  6. C MATRICE DE MASSE D'UN ELEMENT COQUE A 2 NOEUDS
  7. C CODE X.DE MAZANCOURT DECEMBRE 85
  8. C***********************************************************************
  9. C ENTREES
  10. C Q(3,2) : COORDONNEES DES 2 NOEUDS , R PUIS Z
  11. C E : EPAISSEUR ( CONSTANTE )
  12. C RHO : MASSE VOLUMIQUE
  13. C IMATMA=1-MATRICE MASSE- OU 0-VECTEUR MASSE-(CAS DE MATR DIAGONALE)
  14. C AVANT L'APPEL IL EST MIS A 1
  15. C IFOUR=IFOUR DE CCOPTIO
  16. C NIFOU=NIFOUR DE CCOPTIO
  17. C LRE = TAILEE DE LA MATRICE MASSE 6 SI IFOU.LE.0 8 SI IFOU.GT.0
  18. C SORTIE
  19. C AMM(LRE,LRE) = MATRICE DE MASSE
  20. C IARR:INDICATEUR D'ERREUR,VAUT ZERO NORMALEMENT
  21. C***********************************************************************
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8 (A-H,O-Z)
  24. C Include contenant quelques constantes dont XPI :
  25. -INC CCREEL
  26. DIMENSION Q(3,*),AM(8,8),AMM(LRE,*),VROT(*)
  27. C
  28. C ---------- INITIALISATION
  29. CALL ZERO(AM,8,8)
  30. CALL ZERO(AMM,LRE,LRE)
  31. C
  32. IARR=0
  33. R=.5D0*(Q(1,1)+Q(1,2))
  34. Y=.5D0*(Q(2,1)+Q(2,2))
  35. XD=XDPGE-R
  36. YD=Y-YDPGE
  37. SP=(Q(1,2)-Q(1,1))
  38. CP=(Q(2,2)-Q(2,1))
  39. D2=CP*CP+SP*SP
  40. D=SQRT(D2)
  41. E2=E*E
  42. OMEGA = VROT(2)
  43. C
  44. C ---------- PRELIMINAIRES
  45. C
  46. 20 CONTINUE
  47. COEF=RHO*E*XPI*OMEGA
  48. C ---------- PRELIMINAIRES
  49. IF(NIFOU.EQ.0) THEN
  50. COEF= 1.*COEF
  51. ELSE
  52. COEF= 0.5*COEF
  53. ENDIF
  54. SP=SP/D
  55. CP=CP/D
  56. C
  57. C ---------- CALCULS
  58. AM(1,3) = -D*COEF*(((CP**2)*D*SP)-(2*(CP**2)*R)+
  59. . (10.D0*D*SP)-(40.D0*R))/60.D0
  60. AM(1,7) = -D*COEF*(((CP**2)*D*SP)+(2*(CP**2)*R)
  61. . -(20.D0*R))/60.D0
  62. AM(2,3) = CP*SP*((-2.D0*R)+(D*SP))*COEF*D/60.D0
  63. AM(2,7) = SP*D*CP*COEF*((D*SP)+(2.D0*R))/60.D0
  64. AM(4,3) = (D**2)*COEF*CP*((D*SP)-(6.D0*R))/60.D0
  65. AM(4,7) = -1.D0*(D**2)*COEF*CP*R/15.D0
  66. AM(5,3) = D*COEF*(((CP**2)*D*SP)-(2.D0*(CP**2)*R)+
  67. . (20.D0*R))/60.D0
  68. AM(5,7) = D*COEF*(((CP**2)*D*SP)+(2*(CP**2)*R)
  69. . +(10.D0*D*SP)+(40.D0*R))/60.D0
  70. AM(6,3) = -1.D0*CP*SP*((-2.D0*R)+(D*SP))*COEF*D/60.D0
  71. AM(6,7) = -1.D0*SP*D*CP*COEF*((D*SP)+(2.D0*R))/60.D0
  72. AM(8,3) = (D**2)*COEF*CP*R/15.D0
  73. AM(8,7) = (D**2)*COEF*CP*((D*SP)+(6.D0*R))/60.D0
  74. C
  75. COEF2 = -1.D0
  76. AM(3,1) = COEF2*AM(1,3)
  77. AM(7,1) = COEF2*AM(1,7)
  78. AM(3,2) = COEF2*AM(2,3)
  79. AM(7,2) = COEF2*AM(2,7)
  80. AM(3,4) = COEF2*AM(4,3)
  81. AM(7,4) = COEF2*AM(4,7)
  82. AM(3,5) = COEF2*AM(5,3)
  83. AM(7,5) = COEF2*AM(5,7)
  84. AM(3,6) = COEF2*AM(6,3)
  85. AM(7,6) = COEF2*AM(6,7)
  86. AM(3,8) = COEF2*AM(8,3)
  87. AM(7,8) = COEF2*AM(8,7)
  88. C
  89. DO 70 I=1,8
  90. DO 71 J=1,8
  91. AMM (2*I-1,2*J) = (-1.D0)*AM (I,J)
  92. AMM (2*I,2*J-1) = (-1.D0)*AM (I,J)
  93. 71 CONTINUE
  94. 70 CONTINUE
  95. C
  96. RETURN
  97. END
  98.  
  99.  
  100.  
  101.  

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