Télécharger pr1eca.eso

Retour à la liste

Numérotation des lignes :

pr1eca
  1. C PR1ECA SOURCE CB215821 20/11/25 13:36:00 10792
  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
  70. C**** Variables de COOPTIO
  71. C
  72. C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  73. C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
  74. C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
  75. C & ,IECHO, IIMPI, IOSPI
  76. C & ,IDIM
  77. C & ,MCOORD
  78. C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  79. C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  80. C & ,NORINC,NORVAL,NORIND,NORVAD
  81. C & ,NUCROU, IPSAUV
  82. C
  83. C**** Les variables
  84. C
  85. IMPLICIT INTEGER(I-N)
  86. INTEGER
  87. & IM1,ICH1,ICH2,ICH3,ICH4
  88. & ,IVIT,IPRES
  89. & ,NLCE, N1, IGEOMC
  90. REAL*8 VALER(2),VAL1,VAL2
  91. & ,RO,UX,UY,UZ,P
  92. & ,ROET, ROETH, CELL
  93. & ,GAMMIN,GAMMAX,GAMMA
  94. PARAMETER(GAMMIN=1.0D0,GAMMAX=3.0D0)
  95. C
  96. CHARACTER*(8) TYPE
  97. CHARACTER*(40) MESERR(2)
  98. LOGICAL LOGNEG, LOGBOR
  99. C
  100. C
  101. C**** Les includes
  102. C
  103.  
  104. -INC PPARAM
  105. -INC CCOPTIO
  106. -INC SMCHPOI
  107. -INC SMELEME
  108. C
  109. C
  110. C**** Initialisation des variables pour la gestion des erreurs pas ici,
  111. C mais avant, i.e.
  112. C
  113. C LOGNEG = .FALSE.
  114. C LOGBOR = .FALSE.
  115. C MESERR(1) = ' '
  116. C MESERR(2) = ' '
  117. C
  118. C**** Activation du MELEME "CENTRE"
  119. C
  120. IPT1 = IM1
  121. SEGACT IPT1
  122. N1 = IPT1.NUM(/2)
  123. C
  124. C**** Creation des CHPOINTs IVIT, IPRES
  125. C
  126. C ITEMP CHPOINT simile aux ICH1
  127. C Donc on lit ICH1
  128. C
  129. MCHPO1 = ICH1
  130. SEGACT MCHPO1
  131. MSOUP1 = MCHPO1.IPCHP(1)
  132. SEGACT MSOUP1
  133. MPOVA1 = MSOUP1.IPOVAL
  134. SEGACT MPOVA1
  135. C
  136. C*** MPOVA6 = IPOVAL de IPRES
  137. C
  138. SEGINI, MPOVA6 = MPOVA1
  139. SEGINI, MSOUP2 = MSOUP1
  140. MSOUP2.IPOVAL = MPOVA6
  141. SEGINI, MCHPO2 = MCHPO1
  142. MCHPO2.IPCHP(1)= MSOUP2
  143. IPRES = MCHPO2
  144. C
  145. C*** IVIT simil au CHPOINT ICH2 (DEBITs).
  146. C
  147. MCHPO1 = ICH2
  148. SEGACT MCHPO1
  149. MSOUP1 = MCHPO1.IPCHP(1)
  150. SEGACT MSOUP1
  151. MPOVA2 = MSOUP1.IPOVAL
  152. SEGACT MPOVA2
  153. C
  154. C**** IVIT
  155. C
  156. SEGINI, MPOVA5 = MPOVA2
  157. SEGINI, MSOUP2 = MSOUP1
  158. MSOUP2.IPOVAL = MPOVA5
  159. SEGINI, MCHPO2 = MCHPO1
  160. MCHPO2.IPCHP(1)= MSOUP2
  161. IVIT = MCHPO2
  162. C
  163. C**** Lecture de MPOVALs des autres MCHPOIs
  164. C
  165. CALL LICHT(ICH3,MPOVA3,TYPE,IGEOMC)
  166. CALL LICHT(ICH4,MPOVA4,TYPE,IGEOMC)
  167. C
  168. C**** LICHT active les MPOVALs en *MOD
  169. C
  170. C i.e.
  171. C
  172. C SEGACT MPOVA3*MOD
  173. C SEGACT MPOVA4*MOD
  174. C
  175. C
  176. C**** RICAPITOLATIF
  177. C
  178. C On a activé que les MPOVA1 - MPOVA7
  179. C
  180. C MPOVA1 = RO
  181. C MPOVA2 = DEBIT
  182. C MPOVA3 = ROET
  183. C MPOVA4 = GAMMA
  184. C MPOVA5 = VITESSE
  185. C MPOVA6 = PRES
  186. C
  187. C**** BOUCLE SUR LES CENTRES pour le calcul du FLUX.
  188. C
  189. DO NLCE = 1, N1
  190. C
  191. C******* Les differents variables a chaque centre
  192. C
  193. RO = MPOVA1.VPOCHA(NLCE,1)
  194. IF(RO .LE. 0.0D0)THEN
  195. VALER(1) = RO
  196. MESERR(1) = 'RO '
  197. LOGNEG = .TRUE.
  198. C
  199. C********** RO < 0: le programme s'arrete mais apres le calcul des
  200. C CHPOINTs
  201. C
  202. ENDIF
  203. UX = MPOVA2.VPOCHA(NLCE,1)/RO
  204. UY = MPOVA2.VPOCHA(NLCE,2)/RO
  205. MPOVA5.VPOCHA(NLCE,1)=UX
  206. MPOVA5.VPOCHA(NLCE,2)=UY
  207. IF(IDIM .EQ. 3) THEN
  208. UZ = MPOVA2.VPOCHA(NLCE,3)/RO
  209. MPOVA5.VPOCHA(NLCE,3)=UZ
  210. ENDIF
  211. ROET = MPOVA3.VPOCHA(NLCE,1)
  212. CELL = UX*UX + UY*UY
  213. IF(IDIM .EQ. 3) CELL = CELL +UZ*UZ
  214. CELL = 0.5D0 * CELL *RO
  215. ROETH = ROET - CELL
  216. GAMMA = MPOVA4.VPOCHA(NLCE,1)
  217. IF((GAMMA .LT. GAMMIN) .OR. (GAMMA .GT. GAMMAX))THEN
  218. MESERR(2) = 'GAMMA '
  219. VALER(2) = GAMMA
  220. VAL1 = GAMMIN
  221. VAL2 = GAMMAX
  222. LOGBOR = .TRUE.
  223. C
  224. C********** GAMMA !\in (GAMMIN,GAMMAX) : le programme s'arrete
  225. C mais apres le calcul des CHPOINTs
  226. C
  227. ENDIF
  228. P = (GAMMA - 1.0D0) * ROETH
  229. IF(P .LE. 0.0D0)THEN
  230. VALER(1) = P
  231. MESERR(1) = 'P '
  232. LOGNEG = .TRUE.
  233. C
  234. C********** P < 0: le programme s'arrete mais apres le calcul des
  235. C CHPOINTs
  236. C
  237. ENDIF
  238. MPOVA6.VPOCHA(NLCE,1) = P
  239. ENDDO
  240. END
  241.  
  242.  
  243.  
  244.  

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