Télécharger elpdm1.eso

Retour à la liste

Numérotation des lignes :

elpdm1
  1. C ELPDM1 SOURCE PV 22/04/25 21:15:04 11344
  2. SUBROUTINE ELPDM1(XBORD,IBORD,NS
  3. & ,XCOIN,ICOIN,NC,NC1
  4. & ,CMA1,CSM,CSOM2 ,NS4
  5. & ,XD,XNU,NTRAP,NTRAP2,PF0,XF0,CB,ISTAT
  6. & ,isingu,iregu )
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8(A-B,D-H,O-Z)
  9. IMPLICIT COMPLEX*16(C)
  10. C Include contenant quelques constantes dont XPI :
  11. -INC CCREEL
  12. ************************************************************************
  13. *
  14. * PLAQUES PAR EQUATION INTEGRALE:
  15. *
  16. * REMPLISSAGE DES TERMES INTEGRAUX DE LA MATRICE XMA1(NS4,NS4)
  17. * ET MISE A 0 DU SECOND MEMBRE
  18. *
  19. * | A1 B1 C1 D1 A2..............
  20. * | E1 F1 G1 H1 A2.............
  21. * | -------C.L.------------
  22. * | -------C.L.------------
  23. * | ... A1 B1 C1 D1 ...
  24. * | .... E1 F1 G1 H1....
  25. * | -------C.L.--
  26. * | -------C.L.--
  27. *
  28. *
  29. * A1 TEL QUE A1 + A2 + .... AN = 0.D0
  30. *
  31. *
  32. *
  33. *
  34. *
  35. ************************************************************************
  36. DIMENSION XBORD(15,*)
  37. DIMENSION IBORD (2 ,*)
  38. DIMENSION XCOIN(14,*)
  39. DIMENSION ICOIN(4 ,*)
  40. DIMENSION CMA1(NS4,*)
  41. DIMENSION CSM (*)
  42. DIMENSION CSOM2 (*)
  43. dimension pf0(*)
  44. *
  45. DIMENSION P0(2)
  46. DIMENSION A (2)
  47. DIMENSION B (2)
  48. DIMENSION OAB(2)
  49. DIMENSION Q (2)
  50. *
  51. DIMENSION XN (2)
  52. DIMENSION XN0(2)
  53. DIMENSION XN1(2)
  54. DIMENSION XN2(2)
  55. *
  56. DIMENSION XT (2)
  57. DIMENSION XT0(2)
  58. DIMENSION XT1(2)
  59. DIMENSION XT2(2)
  60. *
  61. *
  62. DIMENSION COP0(8)
  63. DIMENSION CS1 (8)
  64. DIMENSION CS2 (12)
  65. DIMENSION XLCOIN (4)
  66. *
  67. *--0. MISE A 0 DES LIGNES 1 2 , 5 6 ..DE LA MATRICE
  68. *
  69. DO 100 I=1,NS
  70. DO 110 J=1,NS4
  71. CMA1(4* (I - 1 ) + 1,J) = CMPLX(0D0)
  72. CMA1(4* (I - 1 ) + 2,J) = CMPLX(0D0)
  73. 110 CONTINUE
  74. 100 CONTINUE
  75. *
  76. *--1. BOUCLE SUR LES BORDS
  77. *
  78. DO 200 IP=1,NS
  79. *
  80. *- PREPARATION
  81. *
  82. IL1 = 4*(IP - 1) + 1
  83. IL2 = 4*(IP - 1) + 2
  84. XN0(1) = XBORD(1,IP)
  85. XN0(2) = XBORD(2,IP)
  86. XT0(1) = XBORD(3,IP)
  87. XT0(2) = XBORD(4,IP)
  88. P0(1) = XBORD(9,IP)
  89. P0(2) = XBORD(10,IP)
  90. XLP0 = XBORD(11,IP)
  91. *
  92. *- 1.1 TERMES BORDS-BORDS BOUCLE SUR LES AUTRES BORDS
  93. *
  94. DO 210 JQ=1,NS
  95. IF ( JQ.NE.IP) THEN
  96. XN (1) = XBORD(1,JQ)
  97. XN (2) = XBORD(2,JQ)
  98. XT (1) = XBORD(3,JQ)
  99. XT (2) = XBORD(4,JQ)
  100. A (1) = XBORD(5,JQ)
  101. A (2) = XBORD(6,JQ)
  102. B (1) = XBORD(7,JQ)
  103. B (2) = XBORD(8,JQ)
  104. Q (1) = XBORD(9,JQ)
  105. Q (2) = XBORD(10,JQ)
  106. XLQ = XBORD(11,JQ)
  107. OAB(1) = XBORD(12,JQ)
  108. OAB(2) = XBORD(13,JQ)
  109. TETA = XBORD(14,JQ)
  110. R = XBORD(15,JQ)
  111. CALL ELPDI1(P0,XN0,XT0
  112. & ,Q,XN,XT,A,B,OAB,TETA,R,XLQ
  113. & ,XD,XNU
  114. & ,NTRAP,CS1,CB,ISTAT)
  115. JCOL= 4* (JQ - 1)
  116.  
  117. CMA1(IL1,JCOL+1) = CS1(4) / XD
  118. CMA1(IL1,JCOL+2) =-CS1(3) / XD
  119. CMA1(IL1,JCOL+3) = CS1(2) / XD
  120. CMA1(IL1,JCOL+4) =-CS1(1) / XD
  121.  
  122. CMA1(IL2,JCOL+1) = CS1(8) / XD
  123. CMA1(IL2,JCOL+2) =-CS1(7) / XD
  124. CMA1(IL2,JCOL+3) = CS1(6) / XD
  125. CMA1(IL2,JCOL+4) =-CS1(5) / XD
  126. ENDIF
  127. 210 CONTINUE
  128. *
  129. *- 1.2 TERMES BORDS-COINS
  130. *
  131. IF ( NC1.NE.0) THEN
  132. DO 220 JC=1,NC
  133. A (1) = XCOIN(1,JC)
  134. A (2) = XCOIN(2,JC)
  135. XN1(1) = XCOIN(3,JC)
  136. XN1(2) = XCOIN(4,JC)
  137. XT1(1) = XCOIN(5,JC)
  138. XT1(2) = XCOIN(6,JC)
  139. XN2(1) = XCOIN(7,JC)
  140. XN2(2) = XCOIN(8,JC)
  141. XT2(1) = XCOIN(9,JC)
  142. XT2(2) = XCOIN(10,JC)
  143. XLCOIN(1) = XCOIN(11,JC)
  144. XLCOIN(2) = XCOIN(12,JC)
  145. XLCOIN(3) = XCOIN(13,JC)
  146. XLCOIN(4) = XCOIN(14,JC)
  147. CALL ELPDI3(P0,XN0
  148. & ,A,XN1,XN2,XT1,XT2,XLCOIN
  149. & ,XD,XNU
  150. & ,CS2,CB,ISTAT)
  151.  
  152.  
  153.  
  154.  
  155. I1 = ICOIN(1,JC)
  156. I2 = ICOIN(2,JC)
  157. I3 = ICOIN(3,JC)
  158. I4 = ICOIN(4,JC)
  159. J1 = 4*(I1 - 1)
  160. J2 = 4*(I2 - 1)
  161. J3 = 4*(I3 - 1)
  162. J4 = 4*(I4 - 1)
  163.  
  164. *
  165. * TERMES MULTIPLIANT DES W,N SUR LES 2 LIGNES
  166. *
  167. CMA1(IL1,J1+2) = CMA1(IL1,J1+2) - CS2(4)/XD
  168. CMA1(IL1,J2+2) = CMA1(IL1,J2+2) - CS2(3)/XD
  169. CMA1(IL1,J3+2) = CMA1(IL1,J3+2) - CS2(2)/XD
  170. CMA1(IL1,J4+2) = CMA1(IL1,J4+2) - CS2(1)/XD
  171.  
  172. CMA1(IL2,J1+2) = CMA1(IL2,J1+2) - CS2(10)/XD
  173. CMA1(IL2,J2+2) = CMA1(IL2,J2+2) - CS2(9)/XD
  174. CMA1(IL2,J3+2) = CMA1(IL2,J3+2) - CS2(8)/XD
  175. CMA1(IL2,J4+2) = CMA1(IL2,J4+2) - CS2(7)/XD
  176. *
  177. * TERMES MULTIPLIANT DES W SUR LES 2 LIGNES
  178. *
  179. CMA1(IL1,J2+1) = CMA1(IL1,J2+1) - CS2(6)/XD
  180. CMA1(IL1,J3+1) = CMA1(IL1,J3+1) - CS2(5)/XD
  181.  
  182. CMA1(IL2,J2+1) = CMA1(IL2,J2+1) - CS2(12)/XD
  183. CMA1(IL2,J3+1) = CMA1(IL2,J3+1) - CS2(11)/XD
  184. 220 CONTINUE
  185. *
  186. *
  187. *
  188. ENDIF
  189.  
  190. *
  191. *- 1.3 TERMES DU BORDS SUR LUI-MEME
  192. *
  193. *
  194. IF ( iregu .eq.1) THEN
  195. * methode de kn(wd) - kn(ws)
  196. CALL ELPDJ2(XLP0
  197. & ,XD,XNU,CB,ISTAT,NTRAP2
  198. & ,CS1)
  199. ELSE
  200. * methode de kn(wd - ws)
  201. CALL ELPDK2(XLP0
  202. & ,XD,XNU,CB,ISTAT,NTRAP2
  203. & ,CS1)
  204. ENDIF
  205. JCOL= 4* (IP - 1)
  206.  
  207. CMA1(IL1,JCOL+1) = CMA1(IL1,JCOL+1) + CS1(4) / XD
  208. CMA1(IL1,JCOL+2) = CMA1(IL1,JCOL+2) - CS1(3) / XD
  209. CMA1(IL1,JCOL+3) = CMA1(IL1,JCOL+3) + CS1(2) / XD
  210. CMA1(IL1,JCOL+4) = CMA1(IL1,JCOL+4) - CS1(1) / XD
  211.  
  212. CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) + CS1(8) / XD
  213. CMA1(IL2,JCOL+2) = CMA1(IL2,JCOL+2) - CS1(7) / XD
  214. CMA1(IL2,JCOL+3) = CMA1(IL2,JCOL+3) + CS1(6) / XD
  215. CMA1(IL2,JCOL+4) = CMA1(IL2,JCOL+4) - CS1(5) / XD
  216.  
  217. * parti singuliere du terme le plus singulier
  218. IF ( ISingu.EQ. 1) THEN
  219. * CALCUL DU knn0/xd PAR LA PROPRIETE DE SOLIDE RIGIDE
  220. * AU PASSAGE STATIQUE, PUIS ON SE LE GARDE
  221. * ATTENTION LE PREMIER PAS DOIT ETRE STATIQUE
  222. * ------------------------------------------
  223. IF ( ISTAT .EQ. 1) THEN
  224. CSOM1=0D0
  225. CSOM2(IP)=0D0
  226. DO 300 IPP=1,NS
  227. CSOM1 = CSOM1 + CMA1(IL1,4*(IPP - 1) +1)
  228. CSOM2(IP) = CSOM2(IP) + CMA1(IL2,4*(IPP - 1) +1)
  229. 300 CONTINUE
  230. ENDIF
  231. CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) - CSOM2(IP)
  232.  
  233. ELSE
  234. *
  235. * CALCUL DU KNN0/XD exact
  236. *
  237. csing = -1 * XD * (1 + xnu ) / (XPI * xlp0)
  238. CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) + CSING / XD
  239. ENDIF
  240.  
  241. *
  242. *-- RAJOUT DU 1/2 SUR LES DIAGONALES
  243. *
  244. CMA1(IL1,JCOL+1) = CMA1(IL1,JCOL+1) + CMPLX(.5D0)
  245. CMA1(IL2,JCOL+2) = CMA1(IL2,JCOL+2) + CMPLX(.5D0)
  246.  
  247. *-1.4 SECOND MEMBRE
  248. *
  249. CALL ELPDOP ( P0,XN0,PF0,XN0,XT0,XD,XNU,COP0,CB,ISTAT)
  250. CSM (IL1) = COP0(1) *XF0 / XD
  251. CSM (IL2) = COP0(5) *XF0 / XD
  252. 200 CONTINUE
  253. *
  254. RETURN
  255. END
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  

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