Télécharger xsour.eso

Retour à la liste

Numérotation des lignes :

xsour
  1. C XSOUR SOURCE CB215821 26/08/24 21:18:57 12622
  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 1003 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. 1003 CONTINUE
  47.  
  48. CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,
  49. *IDIM,NP,NPG,IAXI,AIRE)
  50.  
  51. DO 103 I=1,NP
  52. I1=IPADS(LE(I,KE))
  53. U=0.D0
  54. DO 102 J=1,MP
  55. J1=IPADQ(LS(J,NK))
  56. NKG=1+(1-IKG)*(J1-1)
  57. DO 101 L=1,NPG
  58. U=U+FN(I,L)*FM(J,L)*PGSQ(L)*RGE(NKG,N)
  59. 101 CONTINUE
  60. 102 CONTINUE
  61. F(I1,1)=F(I1,1)+U
  62. 103 CONTINUE
  63. 108 CONTINUE
  64. C write(6,*)' F '
  65. C write(6,1002)F
  66. C write(6,*)' XSOUR FIN '
  67. RETURN
  68.  
  69. ELSEIF(IKAS.EQ.2)THEN
  70.  
  71. NK=K0
  72. DO 208 KE=1,NBEL
  73. NK=NK+1
  74. DO 1004 I=1,NP
  75. J=LE(I,KE)
  76. DO 209 N=1,IDIM
  77. XYZ(N,I)=XCOOR((J-1)*(IDIM+1)+N)
  78. 209 CONTINUE
  79. 1004 CONTINUE
  80.  
  81. CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,
  82. *IDIM,NP,NPG,IAXI,AIRE)
  83.  
  84. DO 204 N=1,IDIM
  85. DO 203 I=1,NP
  86. I1=IPADS(LE(I,KE))
  87. U=0.D0
  88. DO 202 J=1,MP
  89. J1=IPADQ(LS(J,NK))
  90. NKG=1+(1-IKG)*(J1-1)
  91. DO 201 L=1,NPG
  92. U=U+FN(I,L)*FM(J,L)*PGSQ(L)*RGE(NKG,N)
  93. 201 CONTINUE
  94. 202 CONTINUE
  95. F(I1,N)=F(I1,N)+U
  96. 203 CONTINUE
  97. 204 CONTINUE
  98. 208 CONTINUE
  99. C write(6,*)' F '
  100. C write(6,1002)F
  101. C write(6,*)' XSOUR FIN '
  102. RETURN
  103.  
  104. ELSEIF(IKAS.EQ.3)THEN
  105.  
  106. NK=K0
  107. DO 308 KE=1,NBEL
  108. NK=NK+1
  109. DO 1005 I=1,NP
  110. J=LE(I,KE)
  111. DO 309 N=1,IDIM
  112. XYZ(N,I)=XCOOR((J-1)*(IDIM+1)+N)
  113. 309 CONTINUE
  114. 1005 CONTINUE
  115.  
  116. CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,
  117. *IDIM,NP,NPG,IAXI,AIRE)
  118.  
  119. NKG=1+(1-IKG)*(NK-1)
  120.  
  121. DO 304 N=1,IDIM
  122. DO 303 I=1,NP
  123. I1=IPADS(LE(I,KE))
  124.  
  125. U=0.D0
  126. DO 301 L=1,NPG
  127.  
  128. TT=0.D0
  129. DO 305 IB=1,NP
  130. IB1=IPADS(LE(IB,KE))
  131. NKT=1+(1-IKT)*(IB1-1)
  132. NKR=1+(1-IKR)*(IB1-1)
  133. TT=TT+FN(IB,L)*(TN(NKT)-TREF(NKR))
  134. 305 CONTINUE
  135. U=U+FN(I,L)*PGSQ(L)*TT
  136. 301 CONTINUE
  137. F(I1,N)=F(I1,N)-U*RGE(NKG,N)
  138. 303 CONTINUE
  139. 304 CONTINUE
  140. 308 CONTINUE
  141. C write(6,*)' F '
  142. C write(6,1002)F
  143. C write(6,*)' XSOUR FIN '
  144. RETURN
  145.  
  146.  
  147. ENDIF
  148.  
  149.  
  150.  
  151. 1002 FORMAT(8(1X,1PE11.4))
  152. 1001 FORMAT(20(1X,I5))
  153. END
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  

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