Télécharger primme.eso

Retour à la liste

Numérotation des lignes :

primme
  1. C PRIMME SOURCE OF166741 24/12/13 21:17:17 12097
  2. SUBROUTINE PRIMME()
  3. C************************************************************************
  4. C
  5. C PROJET : CASTEM 2000
  6. C
  7. C NOM : PRIMME
  8. C
  9. C DESCRIPTION : Voir PRIMIT
  10. C
  11. C Calcul des variables primitives (et du "gamma")
  12. C pour les gaz "calorically perfect" multiespeces
  13. C
  14. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  15. C
  16. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  17. C
  18. C************************************************************************
  19. C
  20. C
  21. C APPELES (E/S) : QUETYP, ACMO, LIROBJ, QUEPOI, ERREUR, ECROBJ,
  22. C QUEPO1, ACCTAB, LIRCHA, ECRCHA
  23. C
  24. C APPELES (Calcul) : PRMECA
  25. C
  26. C
  27. C************************************************************************
  28. C
  29. C
  30. C PHRASE D'APPEL (GIBIANE) :
  31. C
  32. C 2) gaz parfait multi-especes (NESP > 1)
  33. C
  34. C RCHPO1 RCHPO2 RCHPO3 RCHPO4 RCHPO5 = 'PRIM' MCLE1 TAB1
  35. C CHPO1 CHPO2 CHPO3 CHPO4 (MCLE2) ;
  36. C
  37. C
  38. C ENTREES :
  39. C
  40. C MCLE1 : 'PERFMULT' : mot clé
  41. C
  42. C
  43. C TAB1 : TABLE qui contient :
  44. C * les noms des especes qui apparessent
  45. C explicitement dans les equations d'Euler en
  46. C TAB1 . 'ESPEULE' (list de mots);
  47. C * le nom de l'espece qui n'y est pas (mots);
  48. C * les CP et les CV du gas en
  49. C TAB1 . 'CP' (table)
  50. C TAB1 . 'CV' (table)
  51. C
  52. C CHPO1 : CHPOINT contenant la masse volumique
  53. C (une composante, 'SCAL').
  54. C
  55. C CHPO2 : CHPOINT contenant les dèbits
  56. C (2 composantes en 2D, 'UX ','UY ');
  57. C
  58. C CHPO3 : CHPOINT contenat l'énergie totale per
  59. C unité de volume (RHO Et),
  60. C (une composante, 'SCAL').
  61. C
  62. C CHPO4 : CHPOINT contenant la masse des especes qui
  63. C explicitement "splitted" dans les equations
  64. C d'Eulers (dont les noms sont dans
  65. C TAB1 . 'ESPEULE');
  66. C
  67. C i.e. CHPO1, CHPO2, CHPO3, CHPO4 sont les variables
  68. C conservatives des Equations d'Euler.
  69. C
  70. C MCLE2 : Option personelle: pas dans la notice
  71. C officielle!!!
  72. C Mot clé, 'TRICHE' (s'il y a un erreur,
  73. C les resultats ne sont pas
  74. C des type ANNULLE et le programme
  75. C ne s'arrete pas!!!)
  76. C
  77. C SORTIES :
  78. C
  79. C RCHPO1 : CHPOINT contenant la vitesse
  80. C
  81. C RCHPO2 : CHPOINT contenant la pression du gaz;
  82. C
  83. C RCHPO3 : CHPOINT contenant la temperature du gaz;
  84. C
  85. C RCHPO4 : CHPOINT contenant les fractions
  86. C massiques des differentes especes;
  87. C
  88. C RCHPO5 : CHPOINT contenat les "gamma" du gaz
  89. C
  90. C N.B.:-tous les CHPOINTs sont non-partitonees et
  91. C ils ont le meme support geometrique;
  92. C en sortie tous les CHPOINTs ont le support
  93. C geometrique de RO
  94. C -en sortie RCHPO5 a le composantes ordonnees
  95. C en tal sens:
  96. C TAB1 . 'ESPEULE' + TAB1 . 'ESPNEULE'
  97. C
  98. C************************************************************************
  99. C
  100. C HISTORIQUE (Anomalies et modifications éventuelles)
  101. C
  102. C HISTORIQUE : Créée le 12.1.98.
  103. C
  104. C Modifie le 30.7.98 pour ajouter le mot clee personelle
  105. C 'TRICHE'
  106. C
  107. C Modifie le 1.2.99 pour precedente use impropre de la
  108. C subroutine ACMM
  109. C
  110. C Modifie le 28.09.00 pour control sur le noms de composantes
  111. C (subroutine QUEPO1)
  112. C Variables de CCOPTIO en commentaire
  113. C Elimination de ERREUR(-301)
  114. C
  115. C************************************************************************
  116. C
  117. C**** Les variables
  118. C
  119. IMPLICIT INTEGER(I-N)
  120. INTEGER ICOND, IRETOU, INDIC, NBCOMP, IERR0
  121. & , NESP, ICEN, IRO, IROVIT, IROET, IROY
  122. & , IPGAS, ICP, ICV
  123. & , IPRES, IVIT, ITEMP, IY, IGAM
  124. & , I1, JG, JGM, JGN
  125. REAL*8 VALER(2),VAL1,VAL2,CP,CV
  126. CHARACTER*(40) MESERR(2),MESCEL
  127. CHARACTER*(8) MTYPR
  128. CHARACTER*(6) NOMTRI
  129. CHARACTER*(4) MOT1(3), CELLCH
  130. LOGICAL LOGNEG, LOGBOR, LOGAN, LOGTRI
  131. C
  132. C**** Variables en ACCTAB
  133. C
  134. INTEGER IVALI, IRETI,IVALR, IRETR
  135. REAL*8 XVALI,XVALR
  136. LOGICAL LOGII, LOGIR
  137. CHARACTER*(8) CHARR,MTYPI
  138. C
  139. C**** Segment pour ordoner les composantes
  140. C
  141. SEGMENT ORDO
  142. INTEGER IORDO(NC)
  143. ENDSEGMENT
  144. C
  145. C**** Les Includes
  146. C
  147.  
  148. -INC PPARAM
  149. -INC CCOPTIO
  150. -INC SMCHPOI
  151. -INC SMLMOTS
  152. -INC SMLREEL
  153. POINTEUR MLRECP.MLREEL, MLRECV.MLREEL
  154. C
  155. C**** Initialisation des parametres d'erreur
  156. C
  157. LOGAN = .FALSE.
  158. LOGNEG = .FALSE.
  159. LOGBOR = .FALSE.
  160. MESCEL = ' '
  161. MESERR(1) = MESCEL
  162. MESERR(2) = MESCEL
  163. MOTERR(1:40) = MESCEL(1:40)
  164. VALER(1) = 0.0D0
  165. VALER(2) = 0.0D0
  166. VAL1 = 0.0D0
  167. VAL2 = 0.0D0
  168. C
  169. C**** Initialisation des variables en ACCTAB
  170. C
  171. IVALI = 0
  172. IVALR = 0
  173. XVALI = 0.0D0
  174. XVALR = 0.0D0
  175. LOGII = .FALSE.
  176. LOGIR = .FALSE.
  177. IRETI = 0
  178. IRETR = 0
  179. CHARR = ' '
  180. C
  181. C**** Initialisation des MOT1(1) (noms des composantes)
  182. C
  183. MOT1(1) = ' '
  184. C
  185. C**** N.B. On veut lire les objets sequentiellement.
  186. C Donc on utilise QUETYP pour controler que
  187. C le type de l'objet soit le bon.
  188. C
  189. C**** Lecture de la table des proprietes du gaz
  190. C
  191. ICOND = 1
  192. CALL QUETYP(MTYPR,ICOND,IRETOU)
  193. IF(IERR .NE. 0)GOTO 9999
  194. IF(MTYPR .NE. 'TABLE ')THEN
  195. C
  196. C******* Message d'erreur standard
  197. C 37 2
  198. C On ne trouve pas d'objet de type %m1:8
  199. C
  200. MOTERR(1:8) = 'TABLE '
  201. CALL ERREUR(37)
  202. GOTO 9999
  203. ELSE
  204. ICOND = 1
  205. CALL LIROBJ(MTYPR,IPGAS,ICOND,IRETOU)
  206. CALL ACTOBJ(MTYPR,IPGAS,1)
  207. IF(IERR .NE. 0)GOTO 9999
  208. ENDIF
  209. C
  210. C**** Les CPs
  211. C
  212. MTYPR = ' '
  213. CALL ACMO(IPGAS,'CP',MTYPR,ICP)
  214. IF(MTYPR .NE. 'TABLE ')THEN
  215. C
  216. C******* Message d'erreur standard
  217. C -301 0 %m1:40
  218. C
  219. MOTERR(1:40) = 'TAB1 . CP = ??? '
  220. WRITE(IOIMP,*) MOTERR(1:40)
  221. C
  222. C******* Message d'erreur standard
  223. C 21 2
  224. C Données incompatibles
  225. C
  226. CALL ERREUR(21)
  227. GOTO 9999
  228. ENDIF
  229. C
  230. C**** Les CVs
  231. C
  232. MTYPR = ' '
  233. CALL ACMO(IPGAS,'CV',MTYPR,ICV)
  234. IF(MTYPR .NE. 'TABLE ')THEN
  235. C
  236. C******* Message d'erreur standard
  237. C -301 0 %m1:40
  238. C
  239. MOTERR(1:40) = 'TAB1 . CV = ??? '
  240. WRITE(IOIMP,*) MOTERR(1:40)
  241. C
  242. C******* Message d'erreur standard
  243. C 21 2
  244. C Données incompatibles
  245. C
  246. CALL ERREUR(21)
  247. GOTO 9999
  248. ENDIF
  249. C
  250. C**** Les especes qui sont dans les Equations d'Euler
  251. C
  252. MTYPR = ' '
  253. CALL ACMO(IPGAS,'ESPEULE',MTYPR,MLMOT1)
  254. IF(MTYPR .NE. 'LISTMOTS')THEN
  255. C
  256. C******* Message d'erreur standard
  257. C -301 0 %m1:40
  258. C
  259. MOTERR(1:40) = 'TAB1 . ESPEULE = ??? '
  260. WRITE(IOIMP,*) MOTERR(1:40)
  261. C
  262. C******* Message d'erreur standard
  263. C 21 2
  264. C Données incompatibles
  265. C
  266. CALL ERREUR(21)
  267. GOTO 9999
  268. ENDIF
  269. C
  270. C**** Nom de l'espece qui n'est pas dans les equations d'Euler
  271. C
  272. MTYPI = 'MOT '
  273. MTYPR = ' '
  274. CALL ACCTAB(IPGAS,MTYPI,IVALI,XVALI,'ESPNEULE', LOGII,IRETI,
  275. & MTYPR,IVALR,XVALR ,CELLCH,LOGIR,IRETR)
  276. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'MOT ')) THEN
  277. C
  278. C******* Message d'erreur standard
  279. C -301 0 %m1:40
  280. C
  281. MOTERR = 'TAB1 . ESPNEULE = ??? '
  282. WRITE(IOIMP,*) MOTERR(1:40)
  283. C
  284. C********** Message d'erreur standard
  285. C 21 2
  286. C Données incompatibles
  287. C
  288. CALL ERREUR(21)
  289. GOTO 9999
  290. ENDIF
  291. C
  292. C**** Control de compatibilite des donnes de la table
  293. C et creation des LISTREELs avec CP et CV
  294. C
  295. SEGACT MLMOT1
  296. NESP = MLMOT1.MOTS(/2)
  297. C
  298. C**** List de CP et CV
  299. C
  300. JG = NESP+1
  301. SEGINI MLRECP
  302. SEGINI MLRECV
  303. DO I1 = 1, NESP
  304. C
  305. C******* N.B. MOT1 est un CHARACTER*(4)
  306. C
  307. MOT1(1) = MLMOT1.MOTS(I1)
  308. C
  309. C******* CALL ACMF(ICP,NOMC,CP) ne marche pas parce que on a
  310. C des blanches dans nos composantes
  311. C
  312. MTYPI = 'MOT '
  313. MTYPR = ' '
  314. CALL ACCTAB(ICP,MTYPI,IVALI,XVALI,MOT1(1), LOGII,IRETI,
  315. & MTYPR,IVALR,CP ,CHARR,LOGIR,IRETR)
  316. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  317. C
  318. C********** Message d'erreur standard
  319. C -301 0 %m1:40
  320. C
  321. MOTERR = 'TAB1 . CP , TAB1 . ESPEULE = ??? '
  322. WRITE(IOIMP,*) MOTERR(1:40)
  323. C
  324. C********** Message d'erreur standard
  325. C 21 2
  326. C Données incompatibles
  327. C
  328. CALL ERREUR(21)
  329. GOTO 9999
  330. ENDIF
  331. MLRECP.PROG(I1) = CP
  332. C
  333. MTYPI = 'MOT '
  334. MTYPR = ' '
  335. CALL ACCTAB(ICV,MTYPI,IVALI,XVALI,MOT1(1), LOGII,IRETI,
  336. & MTYPR,IVALR,CV ,CHARR,LOGIR,IRETR)
  337. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  338. C
  339. C********** Message d'erreur standard
  340. C -301 0 %m1:40
  341. C
  342. MOTERR = 'TAB1 . CV , TAB1 . ESPEULE = ??? '
  343. WRITE(IOIMP,*) MOTERR(1:40)
  344. C
  345. C********** Message d'erreur standard
  346. C 21 2
  347. C Données incompatibles
  348. C
  349. CALL ERREUR(21)
  350. GOTO 9999
  351. ENDIF
  352. MLRECV.PROG(I1) = CV
  353. ENDDO
  354. MTYPI = 'MOT '
  355. MTYPR = ' '
  356. CALL ACCTAB(ICP,MTYPI,IVALI,XVALI,CELLCH, LOGII,IRETI,
  357. & MTYPR,IVALR,CP ,CHARR,LOGIR,IRETR)
  358. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  359. C
  360. C******* Message d'erreur standard
  361. C -301 0 %m1:40
  362. C
  363. MOTERR = 'TAB1 . CP , TAB1 . ESPNEULE = ??? '
  364. WRITE(IOIMP,*) MOTERR(1:40)
  365. C
  366. C********Message d'erreur standard
  367. C 21 2
  368. C Données incompatibles
  369. C
  370. CALL ERREUR(21)
  371. GOTO 9999
  372. ENDIF
  373. MLRECP.PROG(JG) = CP
  374. C
  375. MTYPI = 'MOT '
  376. MTYPR = ' '
  377. CALL ACCTAB(ICV,MTYPI,IVALI,XVALI,CELLCH, LOGII,IRETI,
  378. & MTYPR,IVALR,CV ,CHARR,LOGIR,IRETR)
  379. IF((IERR .NE. 0) .OR. (MTYPR .NE. 'FLOTTANT')) THEN
  380. C
  381. C******* Message d'erreur standard
  382. C -301 0 %m1:40
  383. C
  384. MOTERR = 'TAB1 . CV , TAB1 . ESPNEULE = ??? '
  385. WRITE(IOIMP,*) MOTERR(1:40)
  386. C
  387. C******* Message d'erreur standard
  388. C 21 2
  389. C Données incompatibles
  390. C
  391. CALL ERREUR(21)
  392. GOTO 9999
  393. ENDIF
  394. MLRECV.PROG(JG) = CV
  395. C
  396. C**** Lecture du CHPOINT CHPO1 (masse volumique totale)
  397. C
  398. ICOND = 1
  399. CALL QUETYP(MTYPR,ICOND,IRETOU)
  400. IF(IERR .NE. 0)GOTO 9999
  401. IF(MTYPR .NE. 'CHPOINT ')THEN
  402. C
  403. C******* Message d'erreur standard
  404. C 37 2
  405. C On ne trouve pas d'objet de type %m1:8
  406. C
  407. MOTERR(1:8) = 'CHPOINT '
  408. CALL ERREUR(37)
  409. GOTO 9999
  410. ELSE
  411. ICOND = 1
  412. CALL LIROBJ(MTYPR,IRO,ICOND,IRETOU)
  413. CALL ACTOBJ(MTYPR,IRO,1)
  414. IF(IERR .NE. 0)GOTO 9999
  415. ENDIF
  416. C
  417. C**** On cherche le pointeur de son maillage et on l'impose sur les
  418. C autres CHPOINTs
  419. C
  420. MCHPOI = IRO
  421. SEGACT MCHPOI
  422. MSOUPO = MCHPOI.IPCHP(1)
  423. SEGACT MSOUPO
  424. ICEN = MSOUPO.IGEOC
  425. SEGDES MSOUPO
  426. SEGDES MCHPOI
  427. C
  428. C**** Control du CHPOINT: QUEPOI
  429. C
  430. C INDIC = 1 -> on impose le pointeur du support geometrique (ICEN)
  431. C N.B. Le CHPOINT peut changer de structure pour
  432. C avoir SPG = ICEN!!!!
  433. C INDIC = 0 -> on ne fait que verifier le support geometrique
  434. C (ICEN). Si le SPG sont differents INDIC = -4 en sortie
  435. C
  436. C NBCOMP > 0 -> numero des composantes
  437. C
  438. C MOT1(1) = ' ' obligatoire s'on connais pas les noms des composantes
  439. C
  440. INDIC = 1
  441. NBCOMP = 1
  442. MOT1(1) = 'SCAL'
  443. CALL QUEPOI(IRO, ICEN, INDIC, NBCOMP, MOT1)
  444. IF(IERR .NE. 0)THEN
  445. IERR0 = IERR
  446.  
  447. C
  448. C******** Message d'erreur standard
  449. C -301 0 %m1:40
  450. C
  451. MOTERR = 'CHPO1 '
  452. WRITE(IOIMP,*) MOTERR(1:40)
  453.  
  454. GOTO 9999
  455. ENDIF
  456. C
  457. C**** Lecture du CHPOINT CHPO2( debits)
  458. C
  459. ICOND = 1
  460. CALL QUETYP(MTYPR,ICOND,IRETOU)
  461. IF(IERR .NE. 0)GOTO 9999
  462. IF(MTYPR .NE. 'CHPOINT ')THEN
  463. C
  464. C******* Message d'erreur standard
  465. C 37 2
  466. C On ne trouve pas d'objet de type %m1:8
  467. C
  468. MOTERR(1:8) = 'CHPOINT '
  469. CALL ERREUR(37)
  470. GOTO 9999
  471. ELSE
  472. ICOND = 1
  473. CALL LIROBJ(MTYPR,IROVIT,ICOND,IRETOU)
  474. CALL ACTOBJ(MTYPR,IROVIT,1)
  475. IF(IERR .NE. 0)GOTO 9999
  476. ENDIF
  477. C
  478. C**** Control du CHPOINT
  479. C
  480. INDIC = 1
  481. NBCOMP = IDIM
  482. JGN = 4
  483. JGM = IDIM
  484. SEGINI MLMOT2
  485. MLMOT2.MOTS(1) = 'UX '
  486. MLMOT2.MOTS(2) = 'UY '
  487. IF(IDIM .EQ. 3) MLMOT2.MOTS(3) = 'UZ '
  488. CALL QUEPO1(IROVIT, ICEN, MLMOT2)
  489. IF(IERR .NE. 0)THEN
  490. IERR0 = IERR
  491.  
  492. C
  493. C******** Message d'erreur standard
  494. C -301 0 %m1:40
  495. C
  496. MOTERR = 'CHPO2 '
  497. WRITE(IOIMP,*) MOTERR(1:40)
  498.  
  499. GOTO 9999
  500. ENDIF
  501. C
  502. C**** Lecture du CHPOINT CHPO3(energie volumique)
  503. C
  504. ICOND = 1
  505. CALL QUETYP(MTYPR,ICOND,IRETOU)
  506. IF(IERR .NE. 0)GOTO 9999
  507. IF(MTYPR .NE. 'CHPOINT ')THEN
  508. C
  509. C******* Message d'erreur standard
  510. C 37 2
  511. C On ne trouve pas d'objet de type %m1:8
  512. C
  513. MOTERR(1:8) = 'CHPOINT '
  514. CALL ERREUR(37)
  515. GOTO 9999
  516. ELSE
  517. ICOND = 1
  518. CALL LIROBJ(MTYPR,IROET,ICOND,IRETOU)
  519. CALL ACTOBJ(MTYPR,IROET,1)
  520. IF(IERR .NE. 0)GOTO 9999
  521. ENDIF
  522. C
  523. C**** Control du CHPOINT
  524. C
  525. INDIC = 1
  526. NBCOMP = 1
  527. MOT1(1) = 'SCAL'
  528. CALL QUEPOI(IROET, ICEN, INDIC, NBCOMP, MOT1)
  529. IF(IERR .NE. 0)THEN
  530. IERR0 = IERR
  531.  
  532. C
  533. C******** Message d'erreur standard
  534. C -301 0 %m1:40
  535. C
  536. MOTERR = 'CHPO3 '
  537. WRITE(IOIMP,*) MOTERR(1:40)
  538.  
  539. GOTO 9999
  540. ENDIF
  541. C
  542. C**** Lecture du CHPOINT CHPO4(masses volumiques des especes "splittees")
  543. C
  544. ICOND = 1
  545. CALL QUETYP(MTYPR,ICOND,IRETOU)
  546. IF(IERR .NE. 0)GOTO 9999
  547. IF(MTYPR .NE. 'CHPOINT ')THEN
  548. C
  549. C******* Message d'erreur standard
  550. C 37 2
  551. C On ne trouve pas d'objet de type %m1:8
  552. C
  553. MOTERR(1:8) = 'CHPOINT '
  554. CALL ERREUR(37)
  555. GOTO 9999
  556. ELSE
  557. ICOND = 1
  558. CALL LIROBJ(MTYPR,IROY,ICOND,IRETOU)
  559. CALL ACTOBJ(MTYPR,IROY,1)
  560. IF(IERR .NE. 0)GOTO 9999
  561. ENDIF
  562. C
  563. C**** Control du CHPOINT
  564. C
  565. CALL QUEPO1(IROY , ICEN , MLMOT1)
  566. IF(IERR .NE. 0)THEN
  567.  
  568. C
  569. C******* Message d'erreur standard
  570. C -301 0 %m1:40
  571. C
  572. MOTERR = 'CHPO4 = ??? '
  573. WRITE(IOIMP,*) MOTERR(1:40)
  574. C
  575. C******* Message d'erreur standard
  576. C 21 2
  577. C Données incompatibles
  578. C
  579. CALL ERREUR(21)
  580. GOTO 9999
  581. ENDIF
  582. C
  583. C******* Option TRICHE
  584. C
  585. ICOND = 0
  586. CALL LIRCHA(NOMTRI,ICOND,IRETOU)
  587. IF(IERR .NE. 0)GOTO 9999
  588. IF(IRETOU .EQ. 0)THEN
  589. LOGTRI = .FALSE.
  590. ELSEIF(NOMTRI .EQ. 'TRICHE')THEN
  591. LOGTRI = .TRUE.
  592. ELSE
  593. LOGTRI = .FALSE.
  594. CALL ECRCHA(NOMTRI)
  595. ENDIF
  596. C
  597. C**** Calcul des sorties.
  598. C
  599. C Jusque a la NESP = nombre d'especes qui apparessent
  600. C dans les equations d'Euler
  601. C
  602. C Maintenant NESP = nombre total d'espece
  603. C
  604. NESP = NESP + 1
  605. CALL PRMECA(NESP,
  606. & ICEN,IRO,IROVIT,IROET,IROY,MLRECP,MLRECV,
  607. & IVIT,IPRES,ITEMP,IY,IGAM,
  608. & LOGAN,LOGNEG,LOGBOR,MESERR,
  609. & VALER,VAL1,VAL2)
  610. C
  611. IF(LOGAN)THEN
  612. C
  613. C******* Message d'erreur standard
  614. C 5 3
  615. C Erreur anormale.contactez votre support
  616. C
  617. CALL ERREUR(5)
  618. GOTO 9999
  619. ELSE
  620. IF(LOGNEG)THEN
  621. C
  622. C******* Pression (energie thermique) ou densité negative
  623. C
  624. C
  625. C******* Message d'erreur standard
  626. C 41 2
  627. C %m1:8 = %r1 inférieur à %r2
  628. C
  629. MESCEL = MESERR(1)
  630. MOTERR(1:8) = MESCEL(1:8)
  631. REAERR(1) = REAL(VALER(1))
  632. REAERR(2) = 0.0
  633. CALL ERREUR(41)
  634. IF(LOGTRI)THEN
  635. * IERR = 0
  636. ELSE
  637. GOTO 9999
  638. ENDIF
  639. ENDIF
  640. IF(LOGBOR)THEN
  641. C
  642. C******* GAMMA !\in GAMMIN, GAMMAX
  643. C ou Y !\in YMIN,YMAX
  644. C
  645. C******* Message d'erreur standard
  646. C 42 2
  647. C %m1:8 = %r1 non compris entre %r2 et %r3
  648. C
  649. MESCEL = MESERR(2)
  650. MOTERR(1:8) = MESCEL(1:8)
  651. REAERR(1) = REAL(VALER(2))
  652. REAERR(2) = REAL(VAL1)
  653. REAERR(3) = REAL(VAL2)
  654. CALL ERREUR(42)
  655. IF(LOGTRI)THEN
  656. * IERR = 0
  657. ELSE
  658. GOTO 9999
  659. ENDIF
  660. ENDIF
  661.  
  662. CALL ACTOBJ('CHPOINT ',IGAM ,1)
  663. CALL ACTOBJ('CHPOINT ',IY ,1)
  664. CALL ACTOBJ('CHPOINT ',ITEMP,1)
  665. CALL ACTOBJ('CHPOINT ',IPRES,1)
  666. CALL ACTOBJ('CHPOINT ',IVIT ,1)
  667.  
  668. C******* Ecriture du CHPOINT contenant les "gamma".
  669. CALL ECROBJ('CHPOINT ',IGAM)
  670.  
  671. C******* Ecriture du CHPOINT contenant Y.
  672. CALL ECROBJ('CHPOINT ',IY)
  673.  
  674. C******* Ecriture du CHPOINT contenant la temperature.
  675. CALL ECROBJ('CHPOINT ',ITEMP)
  676.  
  677. C******* Ecriture du CHPOINT contenant la pression.
  678. CALL ECROBJ('CHPOINT ',IPRES)
  679.  
  680. C******* Ecriture du CHPOINT contenant la vitesse.
  681. CALL ECROBJ('CHPOINT ',IVIT)
  682.  
  683. ENDIF
  684.  
  685. SEGSUP MLRECV
  686. SEGSUP MLRECV
  687. SEGSUP MLMOT2
  688. SEGDES MLMOT1
  689.  
  690. 9999 CONTINUE
  691.  
  692. END
  693.  
  694.  
  695.  
  696.  
  697.  

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