Télécharger elpdm1.eso

Retour à la liste

Numérotation des lignes :

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

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