Télécharger cli191.eso

Retour à la liste

Numérotation des lignes :

cli191
  1. C CLI191 SOURCE OF166741 24/12/13 21:15:29 12097
  2. SUBROUTINE CLI191(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  3. & IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
  4. C************************************************************************
  5. C
  6. C PROJET : CASTEM 2000
  7. C
  8. C NOM : CLI191
  9. C
  10. C DESCRIPTION : Subroutine appellée par CLIM11
  11. C
  12. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  13. C
  14. C AUTEUR : S. KUDRIAKOV, DRN/DMT/SEMT/LTMF
  15. C
  16. C************************************************************************
  17. C
  18. C APPELES (Calcul) :
  19. C
  20. C************************************************************************
  21. C
  22. C HISTORIQUE (Anomalies et modifications éventuelles)
  23. C
  24. C HISTORIQUE :
  25. C
  26. C************************************************************************
  27. C
  28. IMPLICIT INTEGER(I-N)
  29. IMPLICIT REAL*8(A-H,O-Z)
  30.  
  31. -INC PPARAM
  32. -INC CCOPTIO
  33. -INC SMLMOTS
  34. -INC SMELEME
  35. POINTEUR MELEFC.MELEME
  36. -INC SMLENTI
  37. POINTEUR MLEMC.MLENTI, MLEMCB.MLENTI,MLEMF.MLENTI
  38. -INC SMCHPOI
  39. POINTEUR MPNORM.MPOVAL, MPVOL.MPOVAL, MPSURF.MPOVAL, MPRC.MPOVAL,
  40. & MPVC.MPOVAL, MPPC.MPOVAL, MPGAMC.MPOVAL, MPLIM.MPOVAL,
  41. & MPRES.MPOVAL, MPRLI.MPOVAL
  42. C
  43. INTEGER MELEMF,MELEMC,MELECB,INORM,ICHPVO,ICHPSU, IROC,IVITC,IPC
  44. & ,IGAMC,ICHLIM,ICHRES,ICHRLI,ICEL,NFAC,IFAC
  45. & ,NGF,NGC,NLF,NLC,NLCB
  46. REAL*8 VOLU,SURF,GAMC,CNX,CNY,CNZ,CTX,CTY,CTZ,GM1,USGM1
  47. & ,CT2X,CT2Y,CT2Z,UTF,UT2F
  48. & ,PC,PF,TF,ECIN,P,RHO,UN,UT,UT2,UX,UY,UZ
  49. & ,RHOC,UXC,UYC,UZC,UNC,RAIR,SF
  50.  
  51. CHARACTER*(8) TYPE
  52. C
  53. C
  54. C**** KRIPAD pour la correspondance global/local
  55. C
  56. CALL KRIPAD(MELEMC,MLEMC)
  57. C SEGINI MLEMC
  58. CALL KRIPAD(MELECB,MLEMCB)
  59. C SEGINI MLEMCB
  60. CALL KRIPAD(MELEMF,MLEMF)
  61. C SEGINI MLEMF
  62. C
  63. C**** CHPOINTs de la table DOMAINE
  64. C
  65. CALL LICHT(INORM,MPNORM,TYPE,ICEL)
  66. CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL)
  67. CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL)
  68. C
  69. C**** LICHT active les MPOVALs en *MOD
  70. C
  71. C SEGACT MPNORM*MOD
  72. C SEGACT MPOVSU*MOD
  73. C SEGACT MPOVOL*MOD
  74. C
  75. C
  76. C**** CHPOINTs des variables
  77. C
  78. CALL LICHT(IROC,MPRC,TYPE,ICEL)
  79. CALL LICHT(IVITC,MPVC,TYPE,ICEL)
  80. CALL LICHT(IPC,MPPC,TYPE,ICEL)
  81. CALL LICHT(IGAMC,MPGAMC,TYPE,ICEL)
  82. CALL LICHT(ICHLIM,MPLIM,TYPE,ICEL)
  83. CALL LICHT(ICHRES,MPRES,TYPE,ICEL)
  84. CALL LICHT(ICHRLI,MPRLI,TYPE,ICEL)
  85. C
  86. C SEGACT *MOD
  87. C SEGACT *MOD
  88. C SEGACT *MOD
  89. C SEGACT *MOD
  90. C SEGACT *MOD
  91. C SEGACT *MOD
  92. C SEGACT *MOD
  93. C
  94. C
  95. C**** Boucle sur le face pour le calcul des invariants de
  96. C Riemann et du flux
  97. C
  98. SEGACT MELEFC
  99. NFAC=MELEFC.NUM(/2)
  100. CNZ=0.0D0
  101. CTZ=0.0D0
  102. CT2X=0.0D0
  103. CT2Y=0.0D0
  104. CT2Z=0.0D0
  105. UZC=0.0D0
  106. DO IFAC=1,NFAC,1
  107. NGF=MELEFC.NUM(1,IFAC)
  108. NGC=MELEFC.NUM(2,IFAC)
  109. NLF=MLEMF.LECT(NGF)
  110. NLC=MLEMC.LECT(NGC)
  111. NLCB=MLEMCB.LECT(NGF)
  112. VOLU=MPVOL.VPOCHA(NLC,1)
  113. SURF=MPSURF.VPOCHA(NLF,1)
  114. C In CASTEM les normales sont sortantes
  115. CNX=-1*MPNORM.VPOCHA(NLF,1)
  116. CNY=-1*MPNORM.VPOCHA(NLF,2)
  117. IF(IDIM.EQ.2)THEN
  118. CTX=-1.0D0*CNY
  119. CTY=CNX
  120. ELSE
  121. CNZ=-1*MPNORM.VPOCHA(NLF,3)
  122. CTX=-1*MPNORM.VPOCHA(NLF,4)
  123. CTY=-1*MPNORM.VPOCHA(NLF,5)
  124. CTZ=-1*MPNORM.VPOCHA(NLF,6)
  125. CT2X=-1*MPNORM.VPOCHA(NLF,7)
  126. CT2Y=-1*MPNORM.VPOCHA(NLF,8)
  127. CT2Z=-1*MPNORM.VPOCHA(NLF,9)
  128. ENDIF
  129. GAMC=MPGAMC.VPOCHA(NLC,1)
  130. GM1=GAMC-1.0D0
  131. USGM1=1.0D0/GM1
  132. C Variables au centre
  133. PC=MPPC.VPOCHA(NLC,1)
  134. RHOC=MPRC.VPOCHA(NLC,1)
  135. UXC=MPVC.VPOCHA(NLC,1)
  136. UYC=MPVC.VPOCHA(NLC,2)
  137. IF(IDIM.EQ.3) UZC=MPVC.VPOCHA(NLC,3)
  138. UNC=(UXC*CNX)+(UYC*CNY)+(UZC*CNZ)
  139. C Variables in the tank (stagnation values)
  140. PF=MPLIM.VPOCHA(NLCB,1)
  141. RF=MPLIM.VPOCHA(NLCB,2)
  142. UTF=0.0D0
  143. UT2F=0.0D0
  144. C
  145. C******* Variables à l'interface
  146. C
  147. c!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  148. C******* entropy in the tank
  149. SF = PF/(RF**GAMC)
  150. c!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  151. RHO=((2.0/(GAMC + 1.0))**USGM1)*RF
  152. P = SF * (RHO**GAMC)
  153. UN=(GAMC*P/RHO)**0.5
  154. UT=UTF
  155. UT2=UT2F
  156. C
  157. C******* On calcule U
  158. C
  159. UX=UN*CNX+UT*CTX+UT2*CT2X
  160. UY=UN*CNY+UT*CTY+UT2*CT2Y
  161. UZ=UN*CNZ+UT*CTZ+UT2*CT2Z
  162. C
  163. ECIN=0.5D0*((UX*UX)+(UY*UY)+(UZ*UZ))
  164. C
  165. C******* Densite, vitesse, pression sur le bord
  166. C
  167. MPRLI.VPOCHA(NLCB,1)=RHO
  168. MPRLI.VPOCHA(NLCB,2)=UX
  169. MPRLI.VPOCHA(NLCB,3)=UY
  170. IF(IDIM.EQ.3) MPRLI.VPOCHA(NLCB,4)=UZ
  171. MPRLI.VPOCHA(NLCB,IDIM+2)=P
  172. C
  173. C
  174. C******* Residuum (son SPG a le meme ordre que MELEFC)
  175. C
  176. MPRES.VPOCHA(IFAC,1)=RHO*UN*SURF/VOLU
  177. MPRES.VPOCHA(IFAC,2)=((RHO*UN*UX)+(P*CNX))*SURF/VOLU
  178. MPRES.VPOCHA(IFAC,3)=((RHO*UN*UY)+(P*CNY))*SURF/VOLU
  179. IF(IDIM.EQ.3)MPRES.VPOCHA(IFAC,4)=((RHO*UN*UZ)+
  180. & (P*CNZ))*SURF/VOLU
  181. MPRES.VPOCHA(IFAC,IDIM+2)=(RHO*UN*((GAMC*USGM1*P/RHO)+ECIN))
  182. & *SURF/VOLU
  183. ENDDO
  184. C
  185. SEGDES MELEFC
  186. C
  187. SEGSUP MLEMC
  188. SEGSUP MLEMCB
  189. SEGSUP MLEMF
  190. C
  191. SEGDES MPNORM
  192. SEGDES MPVOL
  193. SEGDES MPSURF
  194. SEGDES MPRC
  195. SEGDES MPPC
  196. SEGDES MPVC
  197. SEGDES MPGAMC
  198. SEGDES MPLIM
  199. SEGDES MPRES
  200. SEGDES MPRLI
  201. C
  202. 9999 CONTINUE
  203. RETURN
  204. END
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  

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