Télécharger ella22.eso

Retour à la liste

Numérotation des lignes :

ella22
  1. C ELLA22 SOURCE CB215821 16/04/21 21:16:34 8920
  2. SUBROUTINE ELLA22(CORRES,FLAG,COOR,GAMA,ZA1,MASS,RMAS,
  3. & ZS,NP28,NMAS)
  4. C
  5. IMPLICIT INTEGER(I-N)
  6. COMPLEX*16 ZA1,ZS
  7. REAL*8 COOR,GAMA,RMAS,
  8. & Z11,Z21,Z12,Z31,Z22,Z13,Z32,Z23,Z33,
  9. & X1,Y1,Z1,X2,Y2,Z2,XI1,XI2,XI3,
  10. & XJ1,XJ2,XJ3,XK1,XK2,XK3,
  11. & XL,GG,GX,GY,GZ,DET,DELTA
  12. INTEGER CORRES,FLAG,I,INP,IZA1,JZA1,MASS,NMAS,NP28,N1,N2
  13. C
  14. C
  15. C OPERATEUR ELFE LAPLACE ACOU
  16. C
  17. C PRISE EN COMPTE DE LA MASSE PONCTUELLE
  18. C
  19. C PARAMETRES :
  20. C
  21. C COOR : TABLEAU DES COORDONNEES DES NOEUDS (3,2*NP)
  22. C GAMA : TABLEAU DES VECTEUR DEFINISSANT LE PLAN LOCALE OXY (3,2*NP)
  23. C ZA1 : MATRICE DE RIGIDITE
  24. C MASS : LIEU DES MASSES PONCTUELLES
  25. C RASS : VALEUR DES MASSES PONCTUELLES
  26. C ZS : VALEUR DE LA VARIABLE DE LAPLACE
  27. C NP : NOMBRE DE POUTRES
  28. C NP28 : --> NP*28
  29. C NMAS : NOMBRE DE MASSES PONCTUELLES
  30. C
  31. C AUTEURS : SAINT-DIZIER ET GORCY
  32. C DATE : 04 FEVRIER 1991
  33. C
  34. DIMENSION COOR(3,*),GAMA(3,*)
  35. DIMENSION ZA1(NP28,*),MASS(4,*)
  36. DIMENSION RMAS(4,*)
  37. DIMENSION FLAG(*),CORRES(*)
  38. C
  39. IF (NMAS.GT.0) THEN
  40. DO 10 I = 1 , NMAS
  41. INP = MASS(2,I)
  42. N1 = 2*INP-1
  43. N2 = 2*INP
  44. X1 = COOR (1,N1)
  45. Y1 = COOR (2,N1)
  46. Z1 = COOR (3,N1)
  47. X2 = COOR (1,N2)
  48. Y2 = COOR (2,N2)
  49. Z2 = COOR (3,N2)
  50. C
  51. XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
  52. C
  53. C -- VECTEUR UNITAIRE OX REPERE LOCALE
  54. C
  55. XI1 = (X2-X1)/XL
  56. XI2 = (Y2-Y1)/XL
  57. XI3 = (Z2-Z1)/XL
  58. C
  59. C -- VECTEUR UNITAIRE OY REPERE LOCALE
  60. C
  61. GX = GAMA(1,INP)
  62. GY = GAMA(2,INP)
  63. GZ = GAMA(3,INP)
  64. GG = SQRT(GX*GX + GY*GY + GZ*GZ)
  65. GX = GX/GG
  66. GY = GY/GG
  67. GZ = GZ/GG
  68. C
  69. DELTA = SQRT (1.D0 - (XI1*GX + XI2*GY + XI3*GZ)**2)
  70. C
  71. DET=-(GX*XI3-GZ*XI1)**2-(GY*XI1-GX*XI2)**2-(GY*XI3-GZ*XI2)**2
  72. C
  73. IF (ABS(DET).LT.1.D-12) THEN
  74. XJ1 = -XI2
  75. XJ2 = 0.
  76. XJ3 = 0.
  77. ELSE
  78. XJ1 = (XI2*(GY*XI1-GX*XI2)-XI3*(GX*XI3-GZ*XI1))*DELTA/DET
  79. XJ2 = (XI3*(GZ*XI2-GY*XI3)-XI1*(GY*XI1-GX*XI2))*DELTA/DET
  80. XJ3 = (XI1*(GX*XI3-GZ*XI1)-XI2*(GZ*XI2-GY*XI3))*DELTA/DET
  81. ENDIF
  82. C
  83. C -- VECTEUR UNITAIRE OZ REPERE LOCALE
  84. C
  85. XK1 = XI2*XJ3 - XI3*XJ2
  86. XK2 = XI3*XJ1 - XI1*XJ3
  87. XK3 = XI1*XJ2 - XI2*XJ1
  88. C
  89. Z11 = XJ2*XK3 - XJ3*XK2
  90. Z12 = XJ3*XK1 - XJ1*XK3
  91. Z13 = XJ1*XK2 - XJ2*XK1
  92. Z21 = XI3*XK2 - XI2*XK3
  93. Z22 = XI1*XK3 - XI3*XK1
  94. Z23 = XI2*XK1 - XI1*XK2
  95. Z31 = XI2*XJ3 - XI3*XJ2
  96. Z32 = XI3*XJ1 - XI1*XJ3
  97. Z33 = XI1*XJ2 - XI2*XJ1
  98. C
  99. IZA1 = MASS(4,I)
  100. JZA1 = MASS(3,I)
  101. C
  102. ZA1(IZA1 ,JZA1) = CMPLX(-1.D0)*RMAS(1,I)*ZS*ZS
  103. ZA1(IZA1+1,JZA1+1) = CMPLX(-1.D0)*RMAS(1,I)*ZS*ZS
  104. ZA1(IZA1+2,JZA1+2) = CMPLX(-1.D0)*RMAS(1,I)*ZS*ZS
  105. C
  106. ZA1(IZA1+3,JZA1+3) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z11*XI1
  107. * + RMAS(3,I)*Z21*XJ1 + RMAS(4,I)*Z31*XK1 )
  108. ZA1(IZA1+3,JZA1+4) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z12*XI1
  109. * + RMAS(3,I)*Z22*XJ1 + RMAS(4,I)*Z32*XK1 )
  110. ZA1(IZA1+3,JZA1+5) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z13*XI1
  111. * + RMAS(3,I)*Z23*XJ1 + RMAS(4,I)*Z33*XK1 )
  112. C
  113. ZA1(IZA1+4,JZA1+3) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z11*XI2
  114. * + RMAS(3,I)*Z21*XJ2 + RMAS(4,I)*Z31*XK2 )
  115. ZA1(IZA1+4,JZA1+4) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z12*XI2
  116. * + RMAS(3,I)*Z22*XJ2 + RMAS(4,I)*Z32*XK2 )
  117. ZA1(IZA1+4,JZA1+5) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z13*XI2
  118. * + RMAS(3,I)*Z23*XJ2 + RMAS(4,I)*Z33*XK2 )
  119. C
  120. ZA1(IZA1+5,JZA1+3) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z11*XI3
  121. * + RMAS(3,I)*Z21*XJ3 + RMAS(4,I)*Z31*XK3 )
  122. ZA1(IZA1+5,JZA1+4) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z12*XI3
  123. * + RMAS(3,I)*Z22*XJ3 + RMAS(4,I)*Z32*XK3 )
  124. ZA1(IZA1+5,JZA1+5) = CMPLX(-1.D0)*ZS*ZS*( RMAS(2,I)*Z13*XI3
  125. * + RMAS(3,I)*Z23*XJ3 + RMAS(4,I)*Z33*XK3 )
  126. C
  127. C
  128. 10 CONTINUE
  129. C
  130. END IF
  131. C
  132. END
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  

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