Download prigfm.eso

Back to the list

   1 : C PRIGFM    SOURCE    BECC      11/05/18    21:15:35     6973           
   2 :       SUBROUTINE PRIGFM()
   3 : C************************************************************************
   4 : C
   5 : C PROJET            :  CASTEM 2000
   6 : C
   7 : C NOM               :  PRIGFM (OPERATEUR GIBIANE)
   8 : C
   9 : C DESCRIPTION       :  Voir PRIMIT
  10 : C                            
  11 : C                      GFMP. Calcul des variables primitives. 
  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)     : LIROBJ, QUEPOI, QUEPO1, ERREUR, ECROBJ, LIRCHA, 
  21 : C                     ECRCHA
  22 : C     
  23 : C APPELES (Calcul)  : PRGFM1
  24 : C
  25 : C
  26 : C************************************************************************
  27 : C
  28 : C PHRASE D'APPEL (GIBIANE) :
  29 : C
  30 : C RCHPO0 [=vn] RCHPO1[=pn] (RCHPO2 [=yn])  = 'PRIM' 'GFMP' TAB1  
  31 : C                           CHPO0 [=phi] CHPO1 [=rn] CHPO2 [=gn] 
  32 : C                           CHPO3 [=ren] (CHPO4 [=ryn]) (CHPO5 [=aln]) ;
  33 : C
  34 : C ENTREES  : 
  35 : C
  36 : C    TAB1 : TABLE qui contient :
  37 : C          * les noms des espèces qui apparaissent explicitement
  38 : C            dans les équations d'Euler en TAB1 . 'ESPEULE' 
  39 : C            (LISTMOTS) ;
  40 : C          * le nom de l'espèce qui n'y est pas 
  41 : C            (TAB1 . 'ESPNEULE' (MOT)) ;
  42 : C          * les gamma et leS pinf dans la zone phi < 0
  43 : C            TAB1 . 'MGAM' (LISTREEL) ;
  44 : C            TAB1 . 'MPIN' (LISTREEL) ;
  45 : C          * les gamma et les pinf dans la zone phi > 0
  46 : C            TAB1 . 'PGAM' (LISTREEL) ;
  47 : C            TAB1 . 'PPIN' (LISTREEL) ;
  48 : C            NB 
  49 : C            La première valeur dans les objets LISTEEL
  50 : C            TAB1 . 'MGAM', ... est celle de l'espèce
  51 : C            TAB1 . 'ESPNEULE'; les autres sont celles des
  52 : C            espèces TAB1 . 'ESPEULE'.
  53 : C                    
  54 : C            CHPO0   : CHPOINT  contenant la fonction phi
  55 : C                      (une composante, 'SCAL').
  56 : C
  57 : C            CHPO1   : CHPOINT  contenant la masse volumique
  58 : C                      (une composante, 'SCAL').
  59 : C
  60 : C            CHPO2   : CHPOINT  contenant les débits
  61 : C                     (2 composantes en 2D, 'UX  ','UY  ');
  62 : C     
  63 : C            CHPO3   : CHPOINT  contenant l'énergie totale per
  64 : C                      unité de volume (RHO Et),
  65 : C                      (une composante, 'SCAL').
  66 : C
  67 : C            CHPO4   : CHPOINT  contenant les masses volumiques
  68 : C                      des espèces en (TAB1. 'ESPEULE')
  69 : C                      (composante dans TAB1. 'ESPEULE').
  70 : C
  71 : C            CHPO5   : CHPOINT  contenant les fractions volumiques
  72 : C                      des espèces en (TAB1. 'ESPEULE')
  73 : C                      (composante dans TAB1. 'ESPEULE').
  74 : C
  75 : C
  76 : C            MCLE2   : Option personnelle: pas dans la notice
  77 : C                      officielle!!! 
  78 : C                      Mot clé, 'TRICHE' (s'il y a un erreur,
  79 : C                      les objets RCHPO1 et RCHPO2 ne sont pas
  80 : C                      des type ANNULE et le programme
  81 : C                      ne s'arrête pas!!!)
  82 : C 
  83 : C SORTIES  : 
  84 : C
  85 : C            RCHPO0  : CHPOINT  contenant la vitesse
  86 : C
  87 : C            RCHPO1  : CHPOINT  contenant la pression du gaz;
  88 : C      
  89 : C            RCHPO2  : CHPOINT  contenant les fractions massiques
  90 : C                      des espèces en (TAB1. 'ESPEULE')
  91 : C                      (composante dans TAB1. 'ESPEULE').
  92 : C
  93 : C**** Variables de COOPTIO
  94 : C
  95 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  96 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  97 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  98 : C     &        ,IECHO,   IIMPI,  IOSPI
  99 : C     &        ,IDIM
 100 : C     &        ,MCOORD      
 101 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
 102 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
 103 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
 104 : C     &        ,NUCROU, IPSAUV
 105 : C
 106 : C**** Les variables
 107 : C
 108 :       IMPLICIT INTEGER(I-N)
 109 :       INTEGER NESP, NESP1
 110 :       INTEGER ICOND, IRETOU, INDIC, NBCOMP
 111 :      &       , ICEN, IRO, IROVIT, IROET
 112 :      &       , IPRES, IVIT, JGN, JGM, IPHI
 113 :      &       , IPGAS, IROY, IALP, IY
 114 :       REAL*8 VALER(2)
 115 :       CHARACTER*(40) MESERR(2),MESCEL
 116 :       CHARACTER*(4)  MOT(1)
 117 :       CHARACTER*(6) NOMTRI
 118 :       CHARACTER*(8) MTYPR, MTYPI
 119 :       LOGICAL LOGNEG, LOGTRI
 120 : C
 121 : C**** Variables en ACCTAB
 122 : C
 123 :       INTEGER IVALI, IRETI,IVALR, IRETR
 124 :       REAL*8 XVALI,XVALR
 125 :       LOGICAL LOGII, LOGIR
 126 :       CHARACTER*(8) CHARR
 127 : C     
 128 : C**** Les Includes
 129 : C
 130 : -INC CCOPTIO
 131 : -INC SMCHPOI
 132 : -INC SMLMOTS
 133 : -INC SMLREEL
 134 :       POINTEUR MLRMGA.MLREEL, MLRPGA.MLREEL, 
 135 :      &     MLRMPI.MLREEL, MLRPPI.MLREEL
 136 : C
 137 : C
 138 : C**** Initialisation des parametres d'erreur
 139 : C
 140 :       LOGNEG  = .FALSE.
 141 :       MESCEL = '                                        '
 142 :       MESERR(1) = MESCEL
 143 :       MESERR(2) = MESCEL
 144 :       MOTERR(1:40) = MESCEL
 145 :       VALER(1) = 0.0D0
 146 :       VALER(2) = 0.0D0
 147 : C
 148 : C**** Initialisation des MOT(1)
 149 : C
 150 :       MOT(1) = '    '
 151 : C
 152 : C**** Initialisation des variables en ACCTAB
 153 : C
 154 :       IVALI = 0
 155 :       IVALR = 0
 156 :       XVALI = 0.0D0
 157 :       XVALR = 0.0D0
 158 :       LOGII = .FALSE.
 159 :       LOGIR = .FALSE.
 160 :       IRETI = 0
 161 :       IRETR = 0
 162 :       CHARR = '        '
 163 : C
 164 : C**************************************************      
 165 : C**** Lecture de la table des proprietes du gaz ***
 166 : C**************************************************
 167 : C
 168 :       ICOND = 1
 168 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 169 :       IF(IERR .NE. 0)GOTO 9999
 170 :       IF(MTYPR .NE. 'TABLE   ')THEN
 171 : C
 172 : C******* Message d'erreur standard
 173 : C        37 2
 174 : C        On ne trouve pas d'objet de type %m1:8
 175 : C     
 176 :          MOTERR(1:8) = 'TABLE   ' 
 176 :          CALL ERREUR(37)
 177 :          GOTO 9999
 178 :       ELSE
 179 :          ICOND = 1
 179 :          CALL LIROBJ(MTYPR,IPGAS,ICOND,IRETOU)
 180 :          IF(IERR .NE. 0)GOTO 9999
 181 :       ENDIF         
 182 : C
 183 : C**** Nom de l'espece qui n'est pas dans les equations d'Euler
 184 : C
 185 :       MTYPI = 'MOT     '
 186 :       MTYPR = '        '
 186 :       CALL ACCTAB(IPGAS,MTYPI,IVALI,XVALI,'ESPNEULE', LOGII,IRETI,
 187 :      &                  MTYPR,IVALR,XVALR ,CHARR,LOGIR,IRETR)
 188 :       IF((IERR .NE. 0) .OR. (MTYPR .NE. 'MOT     ')) THEN
 189 : C
 190 : C******* Message d'erreur standard
 191 : C        -301 0 %m1:40
 192 : C
 193 :          MOTERR = 'TAB1 . ESPNEULE = ???        '
 194 :          WRITE(IOIMP,*) MOTERR(1:40)
 195 : C
 196 : C********** Message d'erreur standard
 197 : C           21 2
 198 : C           Données incompatibles
 199 : C
 199 :          CALL ERREUR(21)
 200 :          GOTO 9999
 201 :       ENDIF
 202 : C
 203 : C**** Les especes qui sont dans les Equations d'Euler
 204 : C
 205 :       MTYPR = '        ' 
 205 :       CALL ACMO(IPGAS,'ESPEULE',MTYPR,MLMOT1)
 206 :       IF(MTYPR .NE. 'LISTMOTS')THEN
 207 : C
 208 : C******* Message d'erreur standard
 209 : C        -301 0 %m1:40
 210 : C
 211 :          MOTERR(1:40) = 'TAB1 . ESPEULE = ???                    '
 212 :          WRITE(IOIMP,*) MOTERR(1:40)
 213 : C
 214 : C******* Message d'erreur standard
 215 : C        21 2
 216 : C        Données incompatibles
 217 : C
 217 :          CALL ERREUR(21)
 218 :          GOTO 9999
 219 :       ENDIF
 220 :       SEGACT MLMOT1
 221 :       NESP = MLMOT1.MOTS(/2)
 222 :       SEGDES MLMOT1
 223 : C
 224 : C     JGN = 4
 225 : C     JGM =  NESP + 1
 226 : C     SEGINI MLMOT2
 227 : C     DO I1 = 1, NESP, 1
 228 : C        MLMOT2.MOTS(I1) = MLMOT1.MOTS(I1)
 229 : C     ENDDO
 230 : C     MLMOT2.MOTS(NESP+1)=CHARR(1:4)
 231 : C      DO I1 = 1, (NESP + 1)
 232 : C         write(*,*) MLMOT2.MOTS(I1)
 233 : C      ENDDO
 234 : C     SEGSUP MLMOT2
 235 : C      stop
 236 : C
 237 : C
 238 : C**** List de gamma, PHI < 0 (MLRMGA, MLRrel Minus GAMMA)
 239 : C
 240 :       MTYPI = 'MOT     '
 241 :       MTYPR = '        '
 241 :       CALL ACCTAB(IPGAS,MTYPI,IVALI,XVALI,'MGAM', LOGII,IRETI,
 242 :      &                  MTYPR,IVALR,XVALR ,CHARR,LOGIR,IRETR)
 243 :       IF((IERR .NE. 0) .OR. (MTYPR .NE. 'LISTREEL')) THEN
 244 : C
 245 : C********** Message d'erreur standard
 246 : C           -301 0 %m1:40
 247 : C
 248 :          MOTERR = ' TAB1 . MGAM = ???                      '
 249 :          WRITE(IOIMP,*) MOTERR
 250 : C
 251 : C********** Message d'erreur standard
 252 : C           21 2
 253 : C           Données incompatibles
 254 : C
 254 :          CALL ERREUR(21)
 255 :          GOTO 9999
 256 :       ENDIF  
 257 :       MLRMGA = IRETR
 258 :       SEGACT MLRMGA
 259 :       NESP1 = MLRMGA.PROG(/1)
 260 :       IF(NESP1 .NE. (NESP + 1))THEN
 261 : C
 262 : C********** Message d'erreur standard
 263 : C           -301 0 %m1:40
 264 : C
 265 :          MOTERR = 'DIME(TAB1.MGAM)    != NESP              '
 266 :          WRITE(IOIMP,*) MOTERR(1:40)
 267 : C
 268 : C********** Message d'erreur standard
 269 : C           21 2
 270 : C           Données incompatibles
 271 : C
 271 :          CALL ERREUR(21)
 272 :          GOTO 9999
 273 :       ENDIF  
 274 : C
 275 : C**** List de gamma, PHI > 0 (MLRPGA, MLRrel Plus GAMMA)
 276 : C
 277 :       MTYPI = 'MOT     '
 278 :       MTYPR = '        '
 278 :       CALL ACCTAB(IPGAS,MTYPI,IVALI,XVALI,'PGAM', LOGII,IRETI,
 279 :      &                  MTYPR,IVALR,XVALR ,CHARR,LOGIR,IRETR)
 280 :       IF((IERR .NE. 0) .OR. (MTYPR .NE. 'LISTREEL')) THEN
 281 : C
 282 : C********** Message d'erreur standard
 283 : C           -301 0 %m1:40
 284 : C
 285 :          MOTERR = ' TAB1 . PGAM = ???                      '
 286 :          WRITE(IOIMP,*) MOTERR
 287 : C
 288 : C********** Message d'erreur standard
 289 : C           21 2
 290 : C           Données incompatibles
 291 : C
 291 :          CALL ERREUR(21)
 292 :          GOTO 9999
 293 :       ENDIF  
 294 :       MLRPGA = IRETR
 295 :       SEGACT MLRPGA
 296 :       NESP1 = MLRPGA.PROG(/1)
 297 :       IF(NESP1 .NE. (NESP + 1))THEN
 298 : C
 299 : C********** Message d'erreur standard
 300 : C           -301 0 %m1:40
 301 : C
 302 :          MOTERR = 'DIME(TAB1.PGAM)    != NESP              '
 303 :          WRITE(IOIMP,*) MOTERR(1:40)
 304 : C
 305 : C********** Message d'erreur standard
 306 : C           21 2
 307 : C           Données incompatibles
 308 : C
 308 :          CALL ERREUR(21)
 309 :          GOTO 9999
 310 :       ENDIF  
 311 : C
 312 : C**** List de PINF, PHI < 0 (MLRMPI)
 313 : C
 314 :       MTYPI = 'MOT     '
 315 :       MTYPR = '        '
 315 :       CALL ACCTAB(IPGAS,MTYPI,IVALI,XVALI,'MPIN', LOGII,IRETI,
 316 :      &                  MTYPR,IVALR,XVALR ,CHARR,LOGIR,IRETR)
 317 :       IF((IERR .NE. 0) .OR. (MTYPR .NE. 'LISTREEL')) THEN
 318 : C
 319 : C********** Message d'erreur standard
 320 : C           -301 0 %m1:40
 321 : C
 322 :          MOTERR = ' TAB1 . MPIN = ???                      '
 323 :          WRITE(IOIMP,*) MOTERR
 324 : C
 325 : C********** Message d'erreur standard
 326 : C           21 2
 327 : C           Données incompatibles
 328 : C
 328 :          CALL ERREUR(21)
 329 :          GOTO 9999
 330 :       ENDIF  
 331 :       MLRMPI = IRETR
 332 :       SEGACT MLRMPI
 333 :       NESP1 = MLRMPI.PROG(/1)
 334 :       IF(NESP1 .NE. (NESP + 1))THEN
 335 : C
 336 : C********** Message d'erreur standard
 337 : C           -301 0 %m1:40
 338 : C
 339 :          MOTERR = 'DIME(TAB1.MPIN)    != NESP              '
 340 :          WRITE(IOIMP,*) MOTERR(1:40)
 341 : C
 342 : C********** Message d'erreur standard
 343 : C           21 2
 344 : C           Données incompatibles
 345 : C
 345 :          CALL ERREUR(21)
 346 :          GOTO 9999
 347 :       ENDIF  
 348 : C
 349 : C**** List de PINF, PHI > 0 (MLRPPI)
 350 : C
 351 :       MTYPI = 'MOT     '
 352 :       MTYPR = '        '
 352 :       CALL ACCTAB(IPGAS,MTYPI,IVALI,XVALI,'PPIN', LOGII,IRETI,
 353 :      &                  MTYPR,IVALR,XVALR ,CHARR,LOGIR,IRETR)
 354 :       IF((IERR .NE. 0) .OR. (MTYPR .NE. 'LISTREEL')) THEN
 355 : C
 356 : C********** Message d'erreur standard
 357 : C           -301 0 %m1:40
 358 : C
 359 :          MOTERR = ' TAB1 . PPIN = ???                      '
 360 :          WRITE(IOIMP,*) MOTERR
 361 : C
 362 : C********** Message d'erreur standard
 363 : C           21 2
 364 : C           Données incompatibles
 365 : C
 365 :          CALL ERREUR(21)
 366 :          GOTO 9999
 367 :       ENDIF  
 368 :       MLRPPI = IRETR
 369 :       SEGACT MLRPPI
 370 :       NESP1 = MLRPPI.PROG(/1)
 371 :       IF(NESP1 .NE. (NESP + 1))THEN
 372 : C
 373 : C********** Message d'erreur standard
 374 : C           -301 0 %m1:40
 375 : C
 376 :          MOTERR = 'DIME(TAB1.PPIN)    != NESP              '
 377 :          WRITE(IOIMP,*) MOTERR(1:40)
 378 : C
 379 : C********** Message d'erreur standard
 380 : C           21 2
 381 : C           Données incompatibles
 382 : C
 382 :          CALL ERREUR(21)
 383 :          GOTO 9999
 384 :       ENDIF  
 385 : C
 386 : C***********************************************************************
 387 : C******************** Lecture du reste *********************************
 388 : C***********************************************************************
 389 : C      
 390 : C**** Lecture du CHPOINT ROPHI
 391 : C
 392 :       ICOND = 1
 392 :       CALL LIROBJ('CHPOINT',IPHI,ICOND,IRETOU)
 393 :       IF (IERR.NE.0) GOTO 9999
 394 : C
 395 : C**** On cherche le pointeur de son maillage et on l'impose sur les
 396 : C     autres CHPOINT
 397 : C
 398 :       MCHPOI = IPHI
 399 :       SEGACT MCHPOI
 400 :       MSOUPO = MCHPOI.IPCHP(1)
 401 :       SEGACT MSOUPO
 402 :       ICEN = MSOUPO.IGEOC
 403 :       SEGDES MSOUPO
 404 :       SEGDES MCHPOI
 405 : C
 406 : C**** Control du CHPOINT: QUEPOI
 407 : C
 408 : C     On controlle que le chpoint est non-partitione
 409 : C
 410 : C     INDIC = 1   -> on impose le pointeur du support geometrique (ICEN)
 411 : C     INDIC = 0   -> on ne fait que verifier le support geometrique (ICEN)      
 412 : C
 413 : C     NBCOMP > 0 -> numero des composantes      
 414 : C
 415 : C     MOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
 416 : C
 417 :       INDIC = 1
 418 :       NBCOMP = 1
 419 :       MOT(1) = 'SCAL'
 419 :       CALL QUEPOI(IPHI, ICEN, INDIC, NBCOMP, MOT)
 420 :       IF(IERR .NE. 0)THEN
 421 : C
 422 : C******** Message d'erreur standard
 423 : C        -301 0 %m1:40
 424 : C
 425 :          MOTERR = 'CHPO0 = ???                             '
 426 :          WRITE(IOIMP,*) MOTERR(1:40)         
 427 : 
 428 :          GOTO 9999
 429 :       ENDIF  
 430 : C      
 431 : C**** Lecture du CHPOINT RO
 432 : C
 433 :       ICOND = 1
 433 :       CALL LIROBJ('CHPOINT',IRO,ICOND,IRETOU)
 434 :       IF (IERR.NE.0) GOTO 9999
 435 : C
 436 : C**** Control du CHPOINT
 437 : C     
 438 :       INDIC = 1
 439 :       NBCOMP = 1
 440 :       MOT(1) = 'SCAL'
 440 :       CALL QUEPOI(IRO, ICEN, INDIC, NBCOMP, MOT)
 441 :       IF(IERR .NE. 0)THEN
 442 : C
 443 : C******** Message d'erreur standard
 444 : C        -301 0 %m1:40
 445 : C
 446 :          MOTERR  = 'CHPO1 = ???                             '
 447 :          WRITE(IOIMP,*) MOTERR(1:40)
 448 :  
 449 :          GOTO 9999
 450 :       ENDIF 
 451 : C      
 452 : C**** Lecture du CHPOINT DEBIT.
 453 : C
 454 :       ICOND = 1
 454 :       CALL LIROBJ('CHPOINT',IROVIT,ICOND,IRETOU)
 455 :       IF (IERR.NE.0) GOTO 9999
 456 : C
 457 : C**** Control du CHPOINT
 458 : C     
 459 :       INDIC = 1
 460 :       NBCOMP = IDIM
 461 :       JGN = 4
 462 :       JGM = IDIM
 463 :       SEGINI MLMOTS
 464 :       MLMOTS.MOTS(1) = 'UX  '
 465 :       MLMOTS.MOTS(2) = 'UY  '
 466 :       IF(IDIM .EQ. 3) MLMOTS.MOTS(3) = 'UZ  '
 466 :       CALL QUEPO1(IROVIT, ICEN, MLMOTS)
 467 :       IF(IERR .NE. 0)THEN
 468 : C
 469 : C******** Message d'erreur standard
 470 : C        -301 0 %m1:40
 471 : C
 472 :          MOTERR  = 'CHPO2 = ???                             '
 473 :          WRITE(IOIMP,*) MOTERR(1:40)         
 474 : 
 475 :          GOTO 9999
 476 :       ENDIF  
 477 :       SEGSUP MLMOTS
 478 : C      
 479 : C**** Lecture du CHPOINT ROET
 480 : C
 481 :       ICOND = 1
 481 :       CALL LIROBJ('CHPOINT',IROET,ICOND,IRETOU)
 482 :       IF (IERR.NE.0) GOTO 9999
 483 : C
 484 : C**** Control du CHPOINT
 485 : C     
 486 :       INDIC = 1
 487 :       NBCOMP = 1
 488 :       MOT(1) = 'SCAL'
 488 :       CALL QUEPOI(IROET, ICEN, INDIC, NBCOMP, MOT)
 489 :       IF(IERR .NE. 0)THEN
 490 : C
 491 : C******** Message d'erreur standard
 492 : C        -301 0 %m1:40
 493 : C
 494 :          MOTERR  = 'CHPO3 = ???                             '
 495 :          WRITE(IOIMP,*) MOTERR(1:40)
 496 :  
 497 :          GOTO 9999
 498 :       ENDIF 
 499 : C      
 500 : C**** Lecture du CHPOINT IROY and IALP
 501 : C
 502 :       IF (NESP .GE. 1) THEN
 503 :          ICOND = 1
 503 :          CALL LIROBJ('CHPOINT',IROY,ICOND,IRETOU)
 504 :          IF (IERR.NE.0) GOTO 9999
 505 : C
 506 : C
 507 : C**** Control du CHPOINT
 508 : C     
 508 :          CALL QUEPO1(IROY , ICEN , MLMOT1)
 509 :          IF(IERR .NE. 0)THEN
 510 : 
 511 : C
 512 : C******* Message d'erreur standard
 513 : C        -301 0 %m1:40
 514 : C
 515 :             MOTERR = 'CHPO4 = ???                             '
 516 :             WRITE(IOIMP,*) MOTERR(1:40)
 517 : C
 518 : C******* Message d'erreur standard
 519 : C        21 2
 520 : C        Données incompatibles
 521 : C
 521 :             CALL ERREUR(21)
 522 :             GOTO 9999
 523 :          ENDIF
 524 : C
 525 :          ICOND = 1
 525 :          CALL LIROBJ('CHPOINT',IALP,ICOND,IRETOU)
 526 :          IF (IERR.NE.0) GOTO 9999
 527 : C
 528 : C
 529 : C**** Control du CHPOINT
 530 : C     
 530 :          CALL QUEPO1(IALP , ICEN , MLMOT1)
 531 :          IF(IERR .NE. 0)THEN
 532 : 
 533 : C
 534 : C******* Message d'erreur standard
 535 : C        -301 0 %m1:40
 536 : C
 537 :             MOTERR = 'CHPO5 = ???                             '
 538 :             WRITE(IOIMP,*) MOTERR(1:40)
 539 : C
 540 : C******* Message d'erreur standard
 541 : C        21 2
 542 : C        Données incompatibles
 543 : C
 543 :             CALL ERREUR(21)
 544 :             GOTO 9999
 545 :          ENDIF
 546 :       ELSE
 547 :          IROY = 0
 548 :          IALP = 0
 549 :       ENDIF
 550 : C
 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
 565 :       CALL PRGFM1(NESP,
 566 :      &     ICEN,IPHI,IRO,IROVIT,IROET,IROY,IALP,
 567 :      &     MLRMGA,MLRPGA,MLRMPI,MLRPPI,
 568 :      &     IVIT,IPRES,IY,
 569 :      &     LOGNEG,MESERR,
 570 :      &     VALER)
 571 : C
 572 :       IF(LOGNEG)THEN
 573 : C
 574 : C******* Pression (energie thermique)  ou densité negative
 575 : C
 576 : C
 577 : C******* Message d'erreur standard
 578 : C        41 2
 579 : C        %m1:8 = %r1 inférieur à %r2
 580 : C
 581 :          MESCEL = MESERR(1)
 582 :          MOTERR(1:8) = MESCEL(1:8)
 583 :          REAERR(1) = REAL(VALER(1))
 584 :          REAERR(2) = 0.0
 584 :          CALL ERREUR(41)
 585 :          IF(LOGTRI)THEN
 586 :             IERR = 0
 587 :          ELSE
 588 :             GOTO 9999
 589 :          ENDIF
 590 :       ENDIF
 591 :       IF (NESP .GE. 1) THEN
 591 :          CALL ECROBJ('CHPOINT',IY)
 592 :       ENDIF
 593 : C
 594 : C**** Ecriture du CHPOINT contenant la pression.
 595 : C
 595 :       CALL ECROBJ('CHPOINT',IPRES)
 596 : C
 597 : C**** Ecriture du CHPOINT contenant la vitesse.
 598 : C
 598 :       CALL ECROBJ('CHPOINT',IVIT)
 599 : C
 600 :       SEGDES MLRMPI
 601 :       SEGDES MLRMGA
 602 :       SEGDES MLRPPI
 603 :       SEGDES MLRPGA
 604 : C
 605 :  9999 CONTINUE
 606 : C      
 607 :       RETURN                                                                    
 608 :       END
 609 :  

© Cast3M 2003 - All rights reserved.
Disclaimer