Télécharger cli141.eso

Retour à la liste

Numérotation des lignes :

cli141
  1. C CLI141 SOURCE OF166741 24/12/13 21:15:16 12097
  2. SUBROUTINE CLI141(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
  3. & IROC,IVITC,IPC,IGAMC,ICHRES,ICHRLI)
  4. C************************************************************************
  5. C
  6. C PROJET : CASTEM 2000
  7. C
  8. C NOM : CLI141
  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 : A. BECCANTINI, 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.  
  30. -INC PPARAM
  31. -INC CCOPTIO
  32. -INC SMLMOTS
  33. -INC SMELEME
  34. POINTEUR MELEFC.MELEME
  35. -INC SMLENTI
  36. POINTEUR MLEMC.MLENTI, MLEMCB.MLENTI,MLEMF.MLENTI
  37. -INC SMCHPOI
  38. POINTEUR MPNORM.MPOVAL, MPVOL.MPOVAL, MPSURF.MPOVAL, MPRC.MPOVAL,
  39. & MPVC.MPOVAL, MPPC.MPOVAL, MPGAMC.MPOVAL,
  40. & MPRES.MPOVAL, MPRLI.MPOVAL
  41.  
  42. INTEGER MELEMF,MELEMC,MELECB,INORM,ICHPVO,ICHPSU, IROC,IVITC,IPC
  43. & ,IGAMC,ICHRES,ICHRLI,ICEL,NFAC,IFAC
  44. & ,NGF,NGC,NLF,NLC,NLCB
  45. REAL*8 VOLU,SURF,GAMC,CNX,CNY,CNZ,CTX,CTY,CTZ,USGM1
  46. & ,CT2X,CT2Y,CT2Z,RC,PC,UXC,UYC,UZC
  47. & ,UNC
  48. & ,UTC,UT2C
  49. CHARACTER*(8) TYPE
  50. C
  51. C
  52. C**** KRIPAD pour la correspondance global/local
  53. C
  54. CALL KRIPAD(MELEMC,MLEMC)
  55. C SEGINI MLEMC
  56. CALL KRIPAD(MELECB,MLEMCB)
  57. C SEGINI MLEMCB
  58. CALL KRIPAD(MELEMF,MLEMF)
  59. C SEGINI MLEMF
  60. C
  61. C**** CHPOINTs de la table DOMAINE
  62. C
  63. CALL LICHT(INORM,MPNORM,TYPE,ICEL)
  64. CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL)
  65. CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL)
  66. C
  67. C**** LICHT active les MPOVALs en *MOD
  68. C
  69. C SEGACT MPNORM*MOD
  70. C SEGACT MPOVSU*MOD
  71. C SEGACT MPOVOL*MOD
  72. C
  73. C
  74. C**** CHPOINTs des variables
  75. C
  76. CALL LICHT(IROC,MPRC,TYPE,ICEL)
  77. CALL LICHT(IVITC,MPVC,TYPE,ICEL)
  78. CALL LICHT(IPC,MPPC,TYPE,ICEL)
  79. CALL LICHT(IGAMC,MPGAMC,TYPE,ICEL)
  80. CALL LICHT(ICHRES,MPRES,TYPE,ICEL)
  81. CALL LICHT(ICHRLI,MPRLI,TYPE,ICEL)
  82. C
  83. C SEGACT *MOD
  84. C SEGACT *MOD
  85. C SEGACT *MOD
  86. C SEGACT *MOD
  87. C SEGACT *MOD
  88. C SEGACT *MOD
  89. C SEGACT *MOD
  90. C
  91. C
  92. C**** Boucle sur le face pour le calcul des invariants de
  93. C Riemann et du flux
  94. C
  95. SEGACT MELEFC
  96. NFAC=MELEFC.NUM(/2)
  97. UZC=0.0D0
  98. CNZ=0.0D0
  99. CTZ=0.0D0
  100. CT2X=0.0D0
  101. CT2Y=0.0D0
  102. CT2Z=0.0D0
  103. DO IFAC=1,NFAC,1
  104. NGF=MELEFC.NUM(1,IFAC)
  105. NGC=MELEFC.NUM(2,IFAC)
  106. NLF=MLEMF.LECT(NGF)
  107. NLC=MLEMC.LECT(NGC)
  108. NLCB=MLEMCB.LECT(NGF)
  109. VOLU=MPVOL.VPOCHA(NLC,1)
  110. SURF=MPSURF.VPOCHA(NLF,1)
  111. C In CASTEM les normales sont sortantes
  112. CNX=MPNORM.VPOCHA(NLF,1)
  113. CNY=MPNORM.VPOCHA(NLF,2)
  114. IF(IDIM.EQ.2)THEN
  115. CTX=-1.0D0*CNY
  116. CTY=CNX
  117. ELSE
  118. CNZ=MPNORM.VPOCHA(NLF,3)
  119. CTX=MPNORM.VPOCHA(NLF,4)
  120. CTY=MPNORM.VPOCHA(NLF,5)
  121. CTZ=MPNORM.VPOCHA(NLF,6)
  122. CT2X=MPNORM.VPOCHA(NLF,7)
  123. CT2Y=MPNORM.VPOCHA(NLF,8)
  124. CT2Z=MPNORM.VPOCHA(NLF,9)
  125. ENDIF
  126. C Variables au centre
  127. RC=MPRC.VPOCHA(NLC,1)
  128. PC=MPPC.VPOCHA(NLC,1)
  129. UXC=MPVC.VPOCHA(NLC,1)
  130. UYC=MPVC.VPOCHA(NLC,2)
  131. IF(IDIM.EQ.3) UZC=MPVC.VPOCHA(NLC,3)
  132. GAMC=MPGAMC.VPOCHA(NLC,1)
  133. GAMC=MPGAMC.VPOCHA(NLC,1)
  134. USGM1=GAMC-1.0D0
  135. USGM1=1.0D0/USGM1
  136. C
  137. C******* On calcule UN, UT, UT2
  138. C
  139. UNC=(UXC*CNX)+(UYC*CNY)+(UZC*CNZ)
  140. UTC=(UXC*CTX)+(UYC*CTY)+(UZC*CTZ)
  141. UT2C=(UXC*CT2X)+(UYC*CT2Y)+(UZC*CT2Z)
  142. C
  143. C******* Densite, vitesse, pression sur le bord
  144. C
  145. MPRLI.VPOCHA(NLCB,1)=RC
  146. MPRLI.VPOCHA(NLCB,2)=UXC
  147. MPRLI.VPOCHA(NLCB,3)=UYC
  148. IF(IDIM.EQ.3) MPRLI.VPOCHA(NLCB,4)=UZC
  149. MPRLI.VPOCHA(NLCB,IDIM+2)=PC
  150. C
  151. C
  152. C******* Residuum (son SPG a le meme ordre que MELEFC)
  153. C
  154. MPRES.VPOCHA(IFAC,1)=-1*RC*UNC*SURF/VOLU
  155. MPRES.VPOCHA(IFAC,2)=-1*(RC*UNC*UXC+(PC*CNX))*SURF/VOLU
  156. MPRES.VPOCHA(IFAC,3)=-1*(RC*UNC*UYC+(PC*CNY))*SURF/VOLU
  157. IF(IDIM.EQ.3)
  158. & MPRES.VPOCHA(IFAC,4)=-1*(RC*UNC*UZC+(PC*CNZ))*SURF/VOLU
  159. MPRES.VPOCHA(IFAC,IDIM+2)=-1*((UNC*GAMC*USGM1*PC) +
  160. & (0.5D0*RC*UNC*(UNC*UNC+UTC*UTC+UT2C*UT2C)))*SURF/VOLU
  161. ENDDO
  162. C
  163. SEGDES MELEFC
  164. C
  165. SEGSUP MLEMC
  166. SEGSUP MLEMCB
  167. SEGSUP MLEMF
  168. C
  169. SEGDES MPNORM
  170. SEGDES MPVOL
  171. SEGDES MPSURF
  172. SEGDES MPRC
  173. SEGDES MPPC
  174. SEGDES MPVC
  175. SEGDES MPGAMC
  176. SEGDES MPRES
  177. SEGDES MPRLI
  178. C
  179. 9999 CONTINUE
  180. RETURN
  181. END
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  

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