Télécharger coq8gy.eso

Retour à la liste

Numérotation des lignes :

coq8gy
  1. C COQ8GY SOURCE CB215821 26/08/24 21:15:44 12622
  2. SUBROUTINE COQ8GY(NBNO,RHOK,NBPGAU,WRK1,MINTE,MINTE2,WRK7)
  3. C
  4. C |--------------------------------------------------------------|
  5. C | NOUVELLE PROCEDURE DE CALCUL DE LA MATRICE DE COUPLAGE |
  6. C | COUPLAGE GYROSCOPIQUE AVEC UN ELEMENT DE COQUE A 6/8 NOEUDS |
  7. C | |
  8. C | INSPIRE DU CALCUL DE LA MATRICE DE MASSE |
  9. C |--------------------------------------------------------------|
  10. C | ENTREES |
  11. C | NBPGAU : NOMBRE DE POINTS DE GAUSS. |
  12. C | MINTE : FONCTIONS DE FORME AUX POINTS DE GAUSS |
  13. C | MINTE2 : FONCTIONS DE FORME AUX NOEUDS |
  14. C | RHOK : MASSE VOLUMIQUE. |
  15. C | NBNO : NOMBRE DE NOEUDS |
  16. C | WRK7 : SEGMENT DE TRAVAIL (ACTIF) |
  17. C | Didier COMBESCURE mars 2003 |
  18. C |--------------------------------------------------------------|
  19. C
  20. IMPLICIT INTEGER(I-N)
  21. IMPLICIT REAL*8 (A-H,O-Z)
  22.  
  23. -INC SMINTE
  24.  
  25. SEGMENT WRK7
  26. REAL*8 XJI(3,3),TXR(3,3,NBNO),FINT(3,LRE),XJ(3,3),B(3,3)
  27. REAL*8 TH(NBNO),EXC(NBNO),H(NBNO)
  28. REAL*8 ROME(3,3),REWO(LRE,LRE)
  29. ENDSEGMENT
  30. SEGMENT WRK1
  31. REAL*8 REL(LRE,LRE),XE(3,NBNO)
  32. ENDSEGMENT
  33. C
  34. C INITIALISATION DE LA MATRICE DE COUPLAGE
  35. C
  36. LRE=6*NBNO
  37. DO 91 J = 1,LRE
  38. DO 10 I = 1,LRE
  39. REL(I,J) = 0.D0
  40. REWO(I,J) = 0.D0
  41. 10 CONTINUE
  42. 91 CONTINUE
  43. *
  44. ESP = TH(1)
  45. EXCEN = EXC(1)
  46. *
  47. * CORRECTION RNUR LE 12 / 9 / 90
  48. *
  49. CALL CQ8LOC(XE,NBNO,MINTE2.SHPTOT,TXR,IRR)
  50. *
  51. DO 80 LX = 1,NBPGAU
  52. E3 = DZEGAU(LX)
  53. WT = POIGAU (LX)
  54. DO 20 I=1,NBNO
  55. H(I)=SHPTOT(1,I,LX)
  56. 20 CONTINUE
  57. CALL CQ8JCE(LX,NBNO,E3,XE,TH,EXC,TXR,SHPTOT,B,DET,IRR)
  58. FACT = WT*DET*RHOK
  59. DO 30 J = 1, LRE
  60. FINT(1,J) = 0.D0
  61. FINT(2,J) = 0.D0
  62. FINT(3,J) = 0.D0
  63. 30 CONTINUE
  64. XJI(1,1) = 0.D0
  65. XJI(2,2) = 0.D0
  66. XJI(3,3) = 0.D0
  67. DO 60 J = 1,NBNO
  68. XJI(1,2) = TXR(1,1,J)*TXR(2,2,J) - TXR(2,1,J)*TXR(1,2,J)
  69. XJI(1,3) = TXR(1,1,J)*TXR(3,2,J) - TXR(1,2,J)*TXR(3,1,J)
  70. XJI(2,1) = -XJI(1,2)
  71. XJI(2,3) = TXR(2,1,J)*TXR(3,2,J) - TXR(2,2,J)*TXR(3,1,J)
  72. XJI(3,1) = -XJI(1,3)
  73. XJI(3,2) = -XJI(2,3)
  74. J1 = (J-1)*6 + 1
  75. J2 = J1 + 1
  76. J3 = J2 + 1
  77. J4 = J3 + 1
  78. J5 = J4 + 1
  79. J6 = J5 + 1
  80. A1 = H(J)*(0.5*E3*ESP+EXCEN)
  81. FINT(1,J1) = H(J)
  82. FINT(1,J5) = A1*XJI(1,2)
  83. FINT(1,J6) = A1*XJI(1,3)
  84. FINT(2,J2) = FINT(1,J1)
  85. FINT(2,J4) = -FINT(1,J5)
  86. FINT(2,J6) = A1*XJI(2,3)
  87. FINT(3,J3) = FINT(1,J1)
  88. FINT(3,J4) = -FINT(1,J6)
  89. FINT(3,J5) = -FINT(2,J6)
  90. 60 CONTINUE
  91. DO 92 I = 1, LRE
  92. DO 70 J = I, LRE
  93. r_z = 0.D0
  94. DO 71 K = 1,3
  95. r_z = r_z + FINT(K,I)*FINT(K,J)
  96. 71 CONTINUE
  97. REWO(I,J) = REWO(I,J) + (FACT * r_z)
  98. c REWO(J,I) = REWO(I,J)
  99. c bp : on peut faire encore + efficace en executant cette ligne
  100. c apres la boucle 80 (cf boucle 77)
  101. 70 CONTINUE
  102. 92 CONTINUE
  103. 80 CONTINUE
  104. DO 93 I = 1, LRE
  105. DO 77 J = I, LRE
  106. REWO(J,I) = REWO(I,J)
  107. 77 CONTINUE
  108. 93 CONTINUE
  109. C
  110. DO 96 I = 1,NBNO
  111. DO 95 J = 1,NBNO
  112. DO 94 IN = 1,3
  113. DO 90 IM = 1,3
  114. REL((6*I)-6+IN,(6*J)-6+IM)=REWO((6*I)-6+IM,(6*J)-6+IM)
  115. . *ROME(IN,IM)
  116. REL((6*I)-3+IN,(6*J)-6+IM)=REWO((6*I)-3+IM,(6*J)-6+IM)
  117. . *ROME(IN,IM)
  118. REL((6*I)-6+IN,(6*J)-3+IM)=REWO((6*I)-6+IM,(6*J)-3+IM)
  119. . *ROME(IN,IM)
  120. REL((6*I)-3+IN,(6*J)-3+IM)=REWO((6*I)-3+IM,(6*J)-3+IM)
  121. . *ROME(IN,IM)
  122. C
  123. 90 CONTINUE
  124. 94 CONTINUE
  125. 95 CONTINUE
  126. 96 CONTINUE
  127. C
  128. RETURN
  129. END
  130.  
  131.  
  132.  
  133.  
  134.  

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