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