Télécharger ella24.eso

Retour à la liste

Numérotation des lignes :

ella24
  1. C ELLA24 SOURCE PV 22/04/19 16:18:04 11344
  2. SUBROUTINE ELLA24(INP,IFRQ,NP,COOR,GAMA,ALPHAI,ZC1)
  3. C
  4. C REMPLISSAGE DU TABLEAU ZC1
  5. C CONVERSION REPERE LOCAL -> REPERE GLOBAL
  6. C
  7. C ENTREE
  8. C - INP : NUMERO DE LA POUTRE 1 < INP < NP
  9. C - IFRQ : NUMERO DU PAS EN FREQENCE
  10. C - NP : NOMBRE DE TUYAUX
  11. C - COOR : TABLEAU DES COORDONNEES
  12. C - GAMA : TABLEAU DES COMPOSANTES DU VECTEUR Oy LOCAL
  13. C - ALPHAI : TABLEAU CONTENANT LES COEFFICIENTS EXPERIMENTAUX
  14. C EN LOCAL
  15. C
  16. C SORTIE :
  17. C - ZC1 : MATRICE CONTENANT LES COEFFICIENTS DANS LE REPERE
  18. C GLOBAL
  19. C
  20. C TABLEAUX LOCAUX DE TRAVAIL
  21. C - ZROTA : MATRICE DE ROTATION POUR L'ELEMENT EXPERIMENTAL
  22. C
  23. IMPLICIT INTEGER(I-N)
  24. COMPLEX*16 ALPHAI,ZC1,ZROTA,ZR(3,3),CZERO,CPLXUN
  25. REAL*8 X1,Y1,Z1,X2,Y2,Z2,XL,
  26. & XI1,XI2,XI3,
  27. & XJ1,XJ2,XJ3,
  28. & XK1,XK2,XK3,
  29. & GX,GY,GZ,GG,DELTA,DET,
  30. & COOR,GAMA
  31. C
  32. INTEGER INP,N1,N2,IFRQ
  33. C
  34. DIMENSION ALPHAI(14,28,NP,*),ZC1(14,28),ZROTA(28,28)
  35. DIMENSION COOR(3,*),GAMA(3,*)
  36. C
  37. CZERO=CMPLX(0.D0,0.D0,kind(1.d0))
  38. CPLXUN=CMPLX(1.D0,0.D0,kind(1.d0))
  39. C
  40. N1 = 2*INP-1
  41. N2 = 2*INP
  42. X1 = COOR (1,N1)
  43. Y1 = COOR (2,N1)
  44. Z1 = COOR (3,N1)
  45. X2 = COOR (1,N2)
  46. Y2 = COOR (2,N2)
  47. Z2 = COOR (3,N2)
  48. C
  49. XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)
  50. C
  51. C ------------------------------ VECTEUR UNITAIRE OX REPERE LOCALE
  52. C ---------------------------------
  53. XI1 = (X2-X1)/XL
  54. XI2 = (Y2-Y1)/XL
  55. XI3 = (Z2-Z1)/XL
  56. C
  57. C ------------------------- VECTEUR UNITAIRE OY REPERE LOCALE
  58. C ---------------------------------
  59. GX = GAMA(1,INP)
  60. GY = GAMA(2,INP)
  61. GZ = GAMA(3,INP)
  62. GG = SQRT(GX*GX + GY*GY + GZ*GZ)
  63. GX = GX/GG
  64. GY = GY/GG
  65. GZ = GZ/GG
  66. C
  67. DELTA = SQRT (1.D0 - (XI1*GX + XI2*GY + XI3*GZ)**2)
  68. C
  69. DET=-(GX*XI3-GZ*XI1)**2-(GY*XI1-GX*XI2)**2-(GY*XI3-GZ*XI2)**2
  70. C
  71. IF (ABS(DET).LT.1.D-12) THEN
  72. XJ1 = -XI2
  73. XJ2 = 0.D0
  74. XJ3 = 0.D0
  75. ELSE
  76. XJ1 = (XI2*(GY*XI1-GX*XI2)-XI3*(GX*XI3-GZ*XI1))*DELTA/DET
  77. XJ2 = (XI3*(GZ*XI2-GY*XI3)-XI1*(GY*XI1-GX*XI2))*DELTA/DET
  78. XJ3 = (XI1*(GX*XI3-GZ*XI1)-XI2*(GZ*XI2-GY*XI3))*DELTA/DET
  79. END IF
  80. C
  81. C ---------------------------- VECTEUR UNITAIRE OZ REPERE LOCALE
  82. C ---------------------------------
  83. XK1 = XI2*XJ3 - XI3*XJ2
  84. XK2 = XI3*XJ1 - XI1*XJ3
  85. XK3 = XI1*XJ2 - XI2*XJ1
  86. C
  87. ZR(1,1) = CMPLX(XJ2*XK3 - XJ3*XK2,0.D0,kind(1.d0))
  88. ZR(1,2) = CMPLX(XJ3*XK1 - XJ1*XK3,0.D0,kind(1.d0))
  89. ZR(1,3) = CMPLX(XJ1*XK2 - XJ2*XK1,0.D0,kind(1.d0))
  90. ZR(2,1) = CMPLX(XI3*XK2 - XI2*XK3,0.D0,kind(1.d0))
  91. ZR(2,2) = CMPLX(XI1*XK3 - XI3*XK1,0.D0,kind(1.d0))
  92. ZR(2,3) = CMPLX(XI2*XK1 - XI1*XK2,0.D0,kind(1.d0))
  93. ZR(3,1) = CMPLX(XI2*XJ3 - XI3*XJ2,0.D0,kind(1.d0))
  94. ZR(3,2) = CMPLX(XI3*XJ1 - XI1*XJ3,0.D0,kind(1.d0))
  95. ZR(3,3) = CMPLX(XI1*XJ2 - XI2*XJ1,0.D0,kind(1.d0))
  96. C
  97. C INITIALISATION DE LA MATRICE ZROTA A ZERO
  98. C
  99. DO 20 I=1,28
  100. DO 10 J=1,28
  101. ZROTA(I,J)=CZERO
  102. 10 CONTINUE
  103. 20 CONTINUE
  104. C
  105. C REMPLISSAGE DE LA PARTIE SUPERIEURE GAUCHE
  106. C
  107. DO 50 IBLOC=1,4
  108. DO 40 I=1,3
  109. I1=(IBLOC-1)*3+I
  110. DO 30 J=1,3
  111. J1=(IBLOC-1)*3+J
  112. ZROTA(I1,J1)=ZR(I,J)
  113. 30 CONTINUE
  114. 40 CONTINUE
  115. 50 CONTINUE
  116. ZROTA(13,13)=CPLXUN
  117. ZROTA(14,14)=CPLXUN
  118. C
  119. C REMPLISSAGE DE LA PARTIE INFERIEURE DROITE
  120. C
  121. DO 80 IBLOC=5,8
  122. DO 70 I=1,3
  123. I1=(IBLOC-1)*3+I+2
  124. DO 60 J=1,3
  125. J1=(IBLOC-1)*3+J+2
  126. ZROTA(I1,J1)=ZR(I,J)
  127. 60 CONTINUE
  128. 70 CONTINUE
  129. 80 CONTINUE
  130. C
  131. ZROTA(27,27)=CPLXUN
  132. ZROTA(28,28)=CPLXUN
  133. C
  134. C INITIALISATION DE LA MATRICE ZC1 A ZERO
  135. C
  136. DO 100 I=1,14
  137. DO 90 J=1,28
  138. ZC1(I,J)=CZERO
  139. 90 CONTINUE
  140. 100 CONTINUE
  141. C
  142. DO 130 I=1,14
  143. DO 120 J=1,28
  144. DO 110 K=1,28
  145. ZC1(I,J)=ZC1(I,J)+ALPHAI(I,K,INP,IFRQ)*ZROTA(K,J)
  146. 110 CONTINUE
  147. 120 CONTINUE
  148. 130 CONTINUE
  149. C
  150. RETURN
  151. END
  152.  
  153.  
  154.  
  155.  

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