Télécharger pr1eca.eso

Retour à la liste

Numérotation des lignes :

pr1eca
  1. C PR1ECA SOURCE OF166741 24/12/13 21:16:57 12097
  2. SUBROUTINE PR1ECA(
  3. & IM1,ICH1,ICH2,ICH3,ICH4,
  4. & IVIT,IPRES,
  5. & LOGNEG,LOGBOR,MESERR,
  6. & VALER,VAL1,VAL2)
  7. C************************************************************************
  8. C
  9. C PROJET : CASTEM 2000
  10. C
  11. C NOM : PR1ECA
  12. C
  13. C DESCRIPTION : VOIR PRIM1E
  14. C
  15. C Gaz ideal mono-espece:
  16. C Calcul de vitesse, pression.
  17. C
  18. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  19. C
  20. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  21. C
  22. C************************************************************************
  23. C
  24. C APPELES (E/S) : LICHT
  25. C
  26. C************************************************************************
  27. C
  28. C ENTREES :
  29. C
  30. C IM1 : MELEME contenant les centres des ELTs
  31. C
  32. C ICH1 : CHPOINT contenant la masse volumique.
  33. C
  34. C ICH2 : CHPOINT contenant les dèbits
  35. C ( NDIM composantes);
  36. C
  37. C ICH3 : CHPOINT contenat l'énergie totale per
  38. C unité de volume (RHO Et);
  39. C
  40. C ICH4 : CHPOINT contenant "gamma" du gaz.
  41. C
  42. C
  43. C SORTIES : IVIT : CHPOINT contenant les "gamma" du gaz;
  44. C
  45. C IPRES : CHPOINT contenant la pression du gaz;
  46. C
  47. C LOGNEG : (LOGICAL): si .TRUE. une pression ou une densité
  48. C negative a été detectée -> le programme s'arrete
  49. C (sa valeur stockée en MESERR(1) et VALER(1))
  50. C
  51. C LOGBOR : (LOGICAL)
  52. C gamma a été detecté dehor GAMMIN et GAMMAX
  53. C (sa valeur stockée en MESERR(2) et VALER(2),VAL1,VAL2)
  54. C
  55. C MESERR,
  56. C VALER,
  57. C VAL1,
  58. C VAL2 : pour message d'erreur
  59. C
  60. C
  61. C************************************************************************
  62. C
  63. C HISTORIQUE (Anomalies et modifications éventuelles)
  64. C
  65. C HISTORIQUE : Créée le 12.1.98.
  66. C
  67. C************************************************************************
  68. C
  69. C**** Les variables
  70. C
  71. IMPLICIT INTEGER(I-N)
  72. INTEGER
  73. & IM1,ICH1,ICH2,ICH3,ICH4
  74. & ,IVIT,IPRES
  75. & ,NLCE, N1, IGEOMC
  76. REAL*8 VALER(2),VAL1,VAL2
  77. & ,RO,UX,UY,UZ,P
  78. & ,ROET, ROETH, CELL
  79. & ,GAMMIN,GAMMAX,GAMMA
  80. PARAMETER(GAMMIN=1.0D0,GAMMAX=3.0D0)
  81. C
  82. CHARACTER*(8) TYPE
  83. CHARACTER*(40) MESERR(2)
  84. LOGICAL LOGNEG, LOGBOR
  85. C
  86. C**** Les includes
  87.  
  88. -INC PPARAM
  89. -INC CCOPTIO
  90. -INC SMCHPOI
  91. -INC SMELEME
  92. C
  93. C**** Initialisation des variables pour la gestion des erreurs pas ici,
  94. C mais avant, i.e.
  95. C
  96. C LOGNEG = .FALSE.
  97. C LOGBOR = .FALSE.
  98. C MESERR(1) = ' '
  99. C MESERR(2) = ' '
  100. C
  101. C**** Activation du MELEME "CENTRE"
  102. C
  103. IPT1 = IM1
  104. SEGACT IPT1
  105. N1 = IPT1.NUM(/2)
  106. C
  107. C**** Creation des CHPOINTs IVIT, IPRES
  108. C
  109. C ITEMP CHPOINT simile aux ICH1
  110. C Donc on lit ICH1
  111. C
  112. MCHPO1 = ICH1
  113. SEGACT MCHPO1
  114. MSOUP1 = MCHPO1.IPCHP(1)
  115. SEGACT MSOUP1
  116. MPOVA1 = MSOUP1.IPOVAL
  117. SEGACT MPOVA1
  118. C
  119. C*** MPOVA6 = IPOVAL de IPRES
  120. C
  121. SEGINI, MPOVA6 = MPOVA1
  122. SEGINI, MSOUP2 = MSOUP1
  123. MSOUP2.IPOVAL = MPOVA6
  124. SEGINI, MCHPO2 = MCHPO1
  125. MCHPO2.IPCHP(1)= MSOUP2
  126. IPRES = MCHPO2
  127. C
  128. C*** IVIT simil au CHPOINT ICH2 (DEBITs).
  129. C
  130. MCHPO1 = ICH2
  131. SEGACT MCHPO1
  132. MSOUP1 = MCHPO1.IPCHP(1)
  133. SEGACT MSOUP1
  134. MPOVA2 = MSOUP1.IPOVAL
  135. SEGACT MPOVA2
  136. C
  137. C**** IVIT
  138. C
  139. SEGINI, MPOVA5 = MPOVA2
  140. SEGINI, MSOUP2 = MSOUP1
  141. MSOUP2.IPOVAL = MPOVA5
  142. SEGINI, MCHPO2 = MCHPO1
  143. MCHPO2.IPCHP(1)= MSOUP2
  144. IVIT = MCHPO2
  145. C
  146. C**** Lecture de MPOVALs des autres MCHPOIs
  147. C
  148. CALL LICHT(ICH3,MPOVA3,TYPE,IGEOMC)
  149. CALL LICHT(ICH4,MPOVA4,TYPE,IGEOMC)
  150. C
  151. C**** LICHT active les MPOVALs en *MOD
  152. C
  153. C i.e.
  154. C
  155. C SEGACT MPOVA3*MOD
  156. C SEGACT MPOVA4*MOD
  157. C
  158. C
  159. C**** RICAPITOLATIF
  160. C
  161. C On a activé que les MPOVA1 - MPOVA7
  162. C
  163. C MPOVA1 = RO
  164. C MPOVA2 = DEBIT
  165. C MPOVA3 = ROET
  166. C MPOVA4 = GAMMA
  167. C MPOVA5 = VITESSE
  168. C MPOVA6 = PRES
  169. C
  170. C**** BOUCLE SUR LES CENTRES pour le calcul du FLUX.
  171. C
  172. DO NLCE = 1, N1
  173. C
  174. C******* Les differents variables a chaque centre
  175. C
  176. RO = MPOVA1.VPOCHA(NLCE,1)
  177. IF(RO .LE. 0.0D0)THEN
  178. VALER(1) = RO
  179. MESERR(1) = 'RO '
  180. LOGNEG = .TRUE.
  181. C
  182. C********** RO < 0: le programme s'arrete mais apres le calcul des
  183. C CHPOINTs
  184. C
  185. ENDIF
  186. UX = MPOVA2.VPOCHA(NLCE,1)/RO
  187. UY = MPOVA2.VPOCHA(NLCE,2)/RO
  188. MPOVA5.VPOCHA(NLCE,1)=UX
  189. MPOVA5.VPOCHA(NLCE,2)=UY
  190. IF(IDIM .EQ. 3) THEN
  191. UZ = MPOVA2.VPOCHA(NLCE,3)/RO
  192. MPOVA5.VPOCHA(NLCE,3)=UZ
  193. ENDIF
  194. ROET = MPOVA3.VPOCHA(NLCE,1)
  195. CELL = UX*UX + UY*UY
  196. IF(IDIM .EQ. 3) CELL = CELL +UZ*UZ
  197. CELL = 0.5D0 * CELL *RO
  198. ROETH = ROET - CELL
  199. GAMMA = MPOVA4.VPOCHA(NLCE,1)
  200. IF((GAMMA .LT. GAMMIN) .OR. (GAMMA .GT. GAMMAX))THEN
  201. MESERR(2) = 'GAMMA '
  202. VALER(2) = GAMMA
  203. VAL1 = GAMMIN
  204. VAL2 = GAMMAX
  205. LOGBOR = .TRUE.
  206. C
  207. C********** GAMMA !\in (GAMMIN,GAMMAX) : le programme s'arrete
  208. C mais apres le calcul des CHPOINTs
  209. C
  210. ENDIF
  211. P = (GAMMA - 1.0D0) * ROETH
  212. IF(P .LE. 0.0D0)THEN
  213. VALER(1) = P
  214. MESERR(1) = 'P '
  215. LOGNEG = .TRUE.
  216. C
  217. C********** P < 0: le programme s'arrete mais apres le calcul des
  218. C CHPOINTs
  219. C
  220. ENDIF
  221. MPOVA6.VPOCHA(NLCE,1) = P
  222. ENDDO
  223. END
  224.  
  225.  
  226.  
  227.  
  228.  

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