Télécharger cli131.eso

Retour à la liste

Numérotation des lignes :

  1. C CLI131 SOURCE CHAT 05/01/12 22:05:30 5004
  2. SUBROUTINE CLI131(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 : CLI131
  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, MPLIM.MPOVAL,
  40. & MPRES.MPOVAL, MPRLI.MPOVAL
  41. C
  42. C**** Variables de COOPTIO
  43. C
  44. C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  45. C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
  46. C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
  47. C & ,IECHO, IIMPI, IOSPI
  48. C & ,IDIM, IFICLE, IPREFI
  49. C & ,MCOORD
  50. C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  51. C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  52. C & ,NORINC,NORVAL,NORIND,NORVAD
  53. C & ,NUCROU, IPSAUV
  54. C
  55. INTEGER MELEMF,MELEMC,MELECB,INORM,ICHPVO,ICHPSU, IROC,IVITC,IPC
  56. & ,IGAMC,ICHLIM,ICHRES,ICHRLI,ICEL,NFAC,IFAC
  57. & ,NGF,NGC,NLF,NLC,NLCB
  58. REAL*8 VOLU,SURF,GAMC,CNX,CNY,CNZ,CTX,CTY,CTZ,USGM1
  59. & ,CT2X,CT2Y,CT2Z,RF,PF,UXF,UYF,UZF
  60. & ,UNF
  61. & ,UTF,UT2F
  62. CHARACTER*(8) TYPE
  63. C
  64. C
  65. C**** KRIPAD pour la correspondance global/local
  66. C
  67. CALL KRIPAD(MELEMC,MLEMC)
  68. C SEGINI MLEMC
  69. CALL KRIPAD(MELECB,MLEMCB)
  70. C SEGINI MLEMCB
  71. CALL KRIPAD(MELEMF,MLEMF)
  72. C SEGINI MLEMF
  73. C
  74. C**** CHPOINTs de la table DOMAINE
  75. C
  76. CALL LICHT(INORM,MPNORM,TYPE,ICEL)
  77. CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL)
  78. CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL)
  79. C
  80. C**** LICHT active les MPOVALs en *MOD
  81. C
  82. C SEGACT MPNORM*MOD
  83. C SEGACT MPOVSU*MOD
  84. C SEGACT MPOVOL*MOD
  85. C
  86. C
  87. C**** CHPOINTs des variables
  88. C
  89. CALL LICHT(IROC,MPRC,TYPE,ICEL)
  90. CALL LICHT(IVITC,MPVC,TYPE,ICEL)
  91. CALL LICHT(IPC,MPPC,TYPE,ICEL)
  92. CALL LICHT(IGAMC,MPGAMC,TYPE,ICEL)
  93. CALL LICHT(ICHLIM,MPLIM,TYPE,ICEL)
  94. CALL LICHT(ICHRES,MPRES,TYPE,ICEL)
  95. CALL LICHT(ICHRLI,MPRLI,TYPE,ICEL)
  96. C
  97. C SEGACT *MOD
  98. C SEGACT *MOD
  99. C SEGACT *MOD
  100. C SEGACT *MOD
  101. C SEGACT *MOD
  102. C SEGACT *MOD
  103. C SEGACT *MOD
  104. C
  105. C
  106. C**** Boucle sur le face pour le calcul des invariants de
  107. C Riemann et du flux
  108. C
  109. SEGACT MELEFC
  110. NFAC=MELEFC.NUM(/2)
  111. UZF=0.0D0
  112. CNZ=0.0D0
  113. CTZ=0.0D0
  114. CT2X=0.0D0
  115. CT2Y=0.0D0
  116. CT2Z=0.0D0
  117. DO IFAC=1,NFAC,1
  118. NGF=MELEFC.NUM(1,IFAC)
  119. NGC=MELEFC.NUM(2,IFAC)
  120. NLF=MLEMF.LECT(NGF)
  121. NLC=MLEMC.LECT(NGC)
  122. NLCB=MLEMCB.LECT(NGF)
  123. VOLU=MPVOL.VPOCHA(NLC,1)
  124. SURF=MPSURF.VPOCHA(NLF,1)
  125. C In CASTEM les normales sont sortantes
  126. CNX=-1*MPNORM.VPOCHA(NLF,1)
  127. CNY=-1*MPNORM.VPOCHA(NLF,2)
  128. IF(IDIM.EQ.2)THEN
  129. CTX=-1.0D0*CNY
  130. CTY=CNX
  131. ELSE
  132. CNZ=-1*MPNORM.VPOCHA(NLF,3)
  133. CTX=-1*MPNORM.VPOCHA(NLF,4)
  134. CTY=-1*MPNORM.VPOCHA(NLF,5)
  135. CTZ=-1*MPNORM.VPOCHA(NLF,6)
  136. CT2X=-1*MPNORM.VPOCHA(NLF,7)
  137. CT2Y=-1*MPNORM.VPOCHA(NLF,8)
  138. CT2Z=-1*MPNORM.VPOCHA(NLF,9)
  139. ENDIF
  140. GAMC=MPGAMC.VPOCHA(NLC,1)
  141. USGM1=GAMC-1.0D0
  142. USGM1=1.0D0/USGM1
  143. C Variables à la face
  144. RF=MPLIM.VPOCHA(NLCB,1)
  145. UXF=MPLIM.VPOCHA(NLCB,2)
  146. UYF=MPLIM.VPOCHA(NLCB,3)
  147. IF(IDIM.EQ.3)UZF=MPLIM.VPOCHA(NLCB,4)
  148. PF=MPLIM.VPOCHA(NLCB,IDIM+2)
  149. C
  150. C******* On calcule UN, UT, UT2
  151. C
  152. UNF=(UXF*CNX)+(UYF*CNY)+(UZF*CNZ)
  153. UTF=(UXF*CTX)+(UYF*CTY)+(UZF*CTZ)
  154. UT2F=(UXF*CT2X)+(UYF*CT2Y)+(UZF*CT2Z)
  155. C
  156. C******* Densite, vitesse, pression sur le bord
  157. C
  158. MPRLI.VPOCHA(NLCB,1)=RF
  159. MPRLI.VPOCHA(NLCB,2)=UXF
  160. MPRLI.VPOCHA(NLCB,3)=UYF
  161. IF(IDIM.EQ.3) MPRLI.VPOCHA(NLCB,4)=UZF
  162. MPRLI.VPOCHA(NLCB,IDIM+2)=PF
  163. C
  164. C
  165. C******* Residuum (son SPG a le meme ordre que MELEFC)
  166. C
  167. MPRES.VPOCHA(IFAC,1)=RF*UNF*SURF/VOLU
  168. MPRES.VPOCHA(IFAC,2)=(RF*UNF*UXF+(PF*CNX))*SURF/VOLU
  169. MPRES.VPOCHA(IFAC,3)=(RF*UNF*UYF+(PF*CNY))*SURF/VOLU
  170. IF(IDIM.EQ.3)
  171. & MPRES.VPOCHA(IFAC,4)=(RF*UNF*UZF+(PF*CNZ))*SURF/VOLU
  172. MPRES.VPOCHA(IFAC,IDIM+2)=((UNF*GAMC*USGM1*PF) +
  173. & (0.5D0*RF*UNF*(UNF*UNF+UTF*UTF+UT2F*UT2F)))*SURF/VOLU
  174. ENDDO
  175. C
  176. SEGDES MELEFC
  177. C
  178. SEGSUP MLEMC
  179. SEGSUP MLEMCB
  180. SEGSUP MLEMF
  181. C
  182. SEGDES MPNORM
  183. SEGDES MPVOL
  184. SEGDES MPSURF
  185. SEGDES MPRC
  186. SEGDES MPPC
  187. SEGDES MPVC
  188. SEGDES MPGAMC
  189. SEGDES MPLIM
  190. SEGDES MPRES
  191. SEGDES MPRLI
  192. C
  193. 9999 CONTINUE
  194. RETURN
  195. END
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  

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