Télécharger xsour.eso

Retour à la liste

Numérotation des lignes :

xsour
  1. C XSOUR SOURCE CHAT 05/01/13 04:15:00 5004
  2. SUBROUTINE XSOUR(FN,FM,GR,PG,XYZ,HR,PGSQ,RPG,
  3. & NES,IDIM,NP,MP,NPG,IAXI,LE,IKAS,KPRE,
  4. & RGE,IKG,NELG,IPADQ,LS,
  5. & TN,IKT,TREF,IKR,IPADS,
  6. & NBEL,K0,XCOOR,F,NPT)
  7.  
  8. IMPLICIT INTEGER(I-N)
  9. IMPLICIT REAL*8 (A-H,O-Z)
  10.  
  11. C************************************************************************
  12. C
  13. C OPERATEUR SOUR
  14. C - IKAS = 1 Source scalaire s : FLOTTANT ou CHPOINT SCAL CENTRE
  15. C - IKAS = 2 Source QDM s : POINT ou CHPOINT SCAL CENTRE
  16. C - IKAS = 3 Source QDM g*beta*( T - Tref )
  17. C
  18. C************************************************************************
  19.  
  20. DIMENSION FM(MP,NPG),FN(NP,NPG),GR(IDIM,NP,NPG),PG(NPG)
  21. DIMENSION XYZ(IDIM,NP),HR(NES,NP,NPG),PGSQ(NPG),RPG(NPG)
  22. DIMENSION XCOOR(*)
  23. DIMENSION RGE(NELG,IDIM),LS(MP,*)
  24. DIMENSION LE(NP,NBEL),F(NPT,IDIM),IPADQ(*),IPADS(*)
  25. DIMENSION TN(*),TREF(*)
  26. C***********************************************************************
  27. C write(6,*)' Debut XSOUR IKAS=',ikas
  28. C write(6,*)' MP,NELG,NP,NPT=',MP,NELG,NP,NPT
  29. C write(6,*)' IPADS '
  30. C write(6,1001)(IPADS(ii),ii=1,100)
  31. C write(6,*)' IPADQ '
  32. C write(6,1001)(IPADQ(ii),ii=1,100)
  33. C write(6,*)' LE '
  34. C write(6,1001)le
  35.  
  36. IF(IKAS.EQ.1)THEN
  37. C Cas source scalaire
  38. NK=K0
  39. DO 108 KE=1,NBEL
  40. NK=NK+1
  41. DO 109 I=1,NP
  42. J=LE(I,KE)
  43. DO 109 N=1,IDIM
  44. XYZ(N,I)=XCOOR((J-1)*(IDIM+1)+N)
  45. 109 CONTINUE
  46.  
  47. CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,
  48. *IDIM,NP,NPG,IAXI,AIRE)
  49.  
  50. DO 103 I=1,NP
  51. I1=IPADS(LE(I,KE))
  52. U=0.D0
  53. DO 102 J=1,MP
  54. J1=IPADQ(LS(J,NK))
  55. NKG=1+(1-IKG)*(J1-1)
  56. DO 101 L=1,NPG
  57. U=U+FN(I,L)*FM(J,L)*PGSQ(L)*RGE(NKG,N)
  58. 101 CONTINUE
  59. 102 CONTINUE
  60. F(I1,1)=F(I1,1)+U
  61. 103 CONTINUE
  62. 108 CONTINUE
  63. C write(6,*)' F '
  64. C write(6,1002)F
  65. C write(6,*)' XSOUR FIN '
  66. RETURN
  67.  
  68. ELSEIF(IKAS.EQ.2)THEN
  69.  
  70. NK=K0
  71. DO 208 KE=1,NBEL
  72. NK=NK+1
  73. DO 209 I=1,NP
  74. J=LE(I,KE)
  75. DO 209 N=1,IDIM
  76. XYZ(N,I)=XCOOR((J-1)*(IDIM+1)+N)
  77. 209 CONTINUE
  78.  
  79. CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,
  80. *IDIM,NP,NPG,IAXI,AIRE)
  81.  
  82. DO 204 N=1,IDIM
  83. DO 203 I=1,NP
  84. I1=IPADS(LE(I,KE))
  85. U=0.D0
  86. DO 202 J=1,MP
  87. J1=IPADQ(LS(J,NK))
  88. NKG=1+(1-IKG)*(J1-1)
  89. DO 201 L=1,NPG
  90. U=U+FN(I,L)*FM(J,L)*PGSQ(L)*RGE(NKG,N)
  91. 201 CONTINUE
  92. 202 CONTINUE
  93. F(I1,N)=F(I1,N)+U
  94. 203 CONTINUE
  95. 204 CONTINUE
  96. 208 CONTINUE
  97. C write(6,*)' F '
  98. C write(6,1002)F
  99. C write(6,*)' XSOUR FIN '
  100. RETURN
  101.  
  102. ELSEIF(IKAS.EQ.3)THEN
  103.  
  104. NK=K0
  105. DO 308 KE=1,NBEL
  106. NK=NK+1
  107. DO 309 I=1,NP
  108. J=LE(I,KE)
  109. DO 309 N=1,IDIM
  110. XYZ(N,I)=XCOOR((J-1)*(IDIM+1)+N)
  111. 309 CONTINUE
  112.  
  113. CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,
  114. *IDIM,NP,NPG,IAXI,AIRE)
  115.  
  116. NKG=1+(1-IKG)*(NK-1)
  117.  
  118. DO 304 N=1,IDIM
  119. DO 303 I=1,NP
  120. I1=IPADS(LE(I,KE))
  121.  
  122. U=0.D0
  123. DO 301 L=1,NPG
  124.  
  125. TT=0.D0
  126. DO 305 IB=1,NP
  127. IB1=IPADS(LE(IB,KE))
  128. NKT=1+(1-IKT)*(IB1-1)
  129. NKR=1+(1-IKR)*(IB1-1)
  130. TT=TT+FN(IB,L)*(TN(NKT)-TREF(NKR))
  131. 305 CONTINUE
  132. U=U+FN(I,L)*PGSQ(L)*TT
  133. 301 CONTINUE
  134. F(I1,N)=F(I1,N)-U*RGE(NKG,N)
  135. 303 CONTINUE
  136. 304 CONTINUE
  137. 308 CONTINUE
  138. C write(6,*)' F '
  139. C write(6,1002)F
  140. C write(6,*)' XSOUR FIN '
  141. RETURN
  142.  
  143.  
  144. ENDIF
  145.  
  146.  
  147.  
  148. 1002 FORMAT(8(1X,1PE11.4))
  149. 1001 FORMAT(20(1X,I5))
  150. END
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  

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