Download pre42f.eso

Back to the list

   1 : C PRE42F    SOURCE    CHAT      06/03/29    21:30:02     5360           
   2 :       SUBROUTINE PRE42F(ORDTEM)
   3 : C************************************************************************
   4 : C
   5 : C PROJET            :  CASTEM 2000
   6 : C
   7 : C NOM               :  PRE42F
   8 : C
   9 : C DESCRIPTION       :  Voir PRE2F
  10 : C
  11 : C                      Two Fluid flow
  12 : C
  13 : C                      2nd order in space 1st or 2nd order in time
  14 : C     
  15 : C                      Creation of the objects MCHAML IALPHF, IUVF, IULF, 
  16 : C                      IPF, ITVF, ITLF, IRVF, IRLF
  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                      Modified for two-fluid flow by
  22 : C                      Jose R. Garcia-Cascales 
  23 : C     
  24 : C************************************************************************
  25 : C
  26 : C APPELES (Outils)  :  LIRTAB, ACMO, LEKTAB, QUETYP, ERREUR, LIROBJ, 
  27 : C                      QUEPOI, ECROBJ
  28 : C                      
  29 : C
  30 : C APPELES (Calcul)  :  PRE52F (2D) PRE62F (3D)
  31 : C
  32 : C************************************************************************
  33 : C
  34 : C HISTORIQUE (Anomalies et modifications éventuelles)
  35 : C
  36 : C HISTORIQUE :  Créée le 26/04/2002.
  37 : C 
  38 : C************************************************************************
  39 : C
  40 : C
  41 : C**** Variables de COOPTIO
  42 : C
  43 :       INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  44 :      &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  45 :      &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  46 :      &        ,IECHO,   IIMPI,  IOSPI
  47 :      &        ,IDIM,    IFICLE, IPREFI
  48 :      &        ,MCOORD      
  49 :      &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  50 :      &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  51 :      &        ,NORINC,NORVAL,NORIND,NORVAD
  52 :      &        ,NUCROU, IPSAUV
  53 : C
  54 : C**** Les variables
  55 : C
  56 :       INTEGER   ORDTEM, ICOND,  IRETOU, IERR0, INDIC, NBCOMP,
  57 :      &          IDOMA, ICEN, IFACE, IFACEL, INORM,
  58 :      &          IALPH, IGRALP, IALALP,
  59 :      &          IUVC, IGRUVC, IALUVC,
  60 :      &          IULC, IGRULC, IALULC,
  61 :      &          IPC,  IGRPC,  IALPC,
  62 :      &          ITVC, IGRTVC, IALTVC,
  63 :      &          ITLC, IGRTLC, IALTLC,
  64 :      &          IRVC, IRLC,
  65 :      &          IALPHF, IUVF, IULF, IPF, ITVF, ITLF, IRVF, IRLF
  66 :       REAL*8 VALER, VAL1, VAL2, DELTAT
  67 :       CHARACTER*(4)  NOMTOT(9)
  68 :       CHARACTER*(8) MTYPR
  69 :       CHARACTER*(40) MESERR
  70 :       LOGICAL LOGAN,LOGNEG, LOGBOR,LOGTEM
  71 : C
  72 : C**** Les Includes
  73 : C
  74 : -INC CCOPTIO
  75 : C
  76 : C
  77 : C**** Initialisation des parametres d'erreur
  78 : C
  79 :       LOGAN = .FALSE.
  80 :       LOGNEG  = .FALSE.
  81 :       LOGBOR  = .FALSE.
  82 :       MESERR = '                                        '
  83 :       MOTERR(1:40) = MESERR(1:40)
  84 :       VALER = 0.0D0
  85 :       VAL1 = 0.0D0
  86 :       VAL2 = 0.0D0
  87 : C
  88 : C**** Initialisation des NOMTOT
  89 : C
  90 :       NOMTOT(1) = '    '
  91 :       NOMTOT(2) = '    '
  92 :       NOMTOT(3) = '    '
  93 :       NOMTOT(4) = '    '
  94 :       NOMTOT(5) = '    '
  95 :       NOMTOT(6) = '    '
  96 :       NOMTOT(7) = '    '
  97 :       NOMTOT(8) = '    '
  98 :       NOMTOT(9) = '    '
  99 : C
 100 : C**** Lecture de la TABLE domaine (IDOMA)
 101 : C
 102 :       ICOND = 1
 102 :       CALL LIRTAB('DOMAINE',IDOMA,ICOND,IRETOU)
 103 :       IF (IERR .NE. 0) GOTO 9999
 104 : C
 105 : C**** Lecture du MELEME SPG des points CENTRE.
 106 : C
 107 : C
 107 : C     CALL LEKTAB(IDOMA,'CENTRE',IP)
 108 : C
 109 : C**** Probleme du LEKTAB: si IDOMA.'CENTRE' n'existe pas,
 110 : C     il crèe IDOMA.'CENTRE' sans recrèer 'FACEL'
 111 : C     -> la correspondance global des noeuds saut!      
 112 : C
 113 : C     On peut utilizer ACCTAB ou ACMO
 114 : C      
 115 :       MTYPR = 'MAILLAGE'
 115 :       CALL ACMO(IDOMA,'CENTRE',MTYPR,ICEN)
 116 :       IF(IERR.NE.0)GOTO 9999
 117 : C
 118 : C**** Lecture du MELEME 'FACE'
 119 : C
 120 :       MTYPR = 'MAILLAGE'
 120 :       CALL ACMO(IDOMA,'FACE',MTYPR,IFACE)
 121 :       IF(IERR.NE.0)GOTO 9999
 122 : C
 123 : C**** Lecture du MELEME 'FACEL'
 124 : C
 125 :       MTYPR = 'MAILLAGE'
 125 :       CALL ACMO(IDOMA,'FACEL',MTYPR,IFACEL)
 126 :       IF(IERR.NE.0)GOTO 9999
 127 : C
 128 : C**** Lecture du CHPOINT contenant les normales aux faces
 129 : C
 130 :       IF(IDIM .EQ. 2)THEN
 131 : C        Que les normales
 131 :          CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
 132 :          IF(IERR .NE. 0) GOTO 9999
 133 :       ELSE
 134 : C      Les normales et les tangentes
 135 :       MTYPR = ' '
 135 :       CALL ACMO(IDOMA,'MATROT',MTYPR,INORM)
 136 :       IF (MTYPR .NE. 'CHPOINT ') THEN         
 136 :          CALL MATRAN(IDOMA,INORM)
 137 :          IF(IERR .NE. 0) GOTO 9999
 138 :       ENDIF
 139 : 
 140 : C         
 141 :       ENDIF
 142 : C
 143 : C**** N.B. On veut lire les objets sequentiellement. 
 144 : C     Donc on utilise QUETYP pour controler que 
 145 : C     le type de l'objet soit le bon.
 146 : C      
 147 : C**** Lecture du CHPOINT IALPH, VOID FRACTION
 148 : C
 149 :       ICOND = 1
 149 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 150 :       IF(IERR .NE. 0)GOTO 9999
 151 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 152 : C
 153 : C******* Message d'erreur standard
 154 : C        37 2
 155 : C        On ne trouve pas d'objet de type %m1:8
 156 : C     
 157 :          MOTERR(1:8) = 'CHPOINT ' 
 157 :          CALL ERREUR(37)
 158 :          GOTO 9999
 159 :       ELSE
 160 :          ICOND = 1
 160 :          CALL LIROBJ(MTYPR,IALPH,ICOND,IRETOU)
 161 :          IF (IERR.NE.0) GOTO 9999
 162 :       ENDIF 
 163 : C
 164 : C**** Control du CHPOINT: QUEPOI
 165 : C      
 166 : C     INDIC = 1   -> on impose le pointeur du support geometrique (IM1)
 167 : C     INDIC = 0   -> on ne fait que verifier le support geometrique (IM1)
 168 : C
 169 : C     NBCOMP > 0 -> numero des composantes      
 170 : C
 171 : C     NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
 172 : C
 173 :       INDIC = 1
 174 :       NBCOMP = 1
 175 :       NOMTOT(1) = 'SCAL'
 175 :       CALL QUEPOI(IALPH, ICEN, INDIC, NBCOMP, NOMTOT)
 176 :       IF(IERR .NE. 0)THEN
 177 :          IERR0 = IERR
 178 : 
 179 : C
 180 : C******* Message d'erreur standard
 181 : C        -301 0 %m1:40
 182 : C
 183 :          MOTERR(1:40)  = 'CHPO1 = ???                             '      
 183 :          CALL ERREUR(-301)         
 184 : 
 185 :          GOTO 9999
 186 :       ENDIF
 187 : C      
 188 : C**** Lecture du CHPOINT GRADALP, void fraction gradient
 189 : C
 190 :       ICOND = 1
 190 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 191 :       IF(IERR .NE. 0)GOTO 9999
 192 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 193 : C
 194 : C******* Message d'erreur standard
 195 : C        37 2
 196 : C        On ne trouve pas d'objet de type %m1:8
 197 : C     
 198 :          MOTERR(1:8) = 'CHPOINT ' 
 198 :          CALL ERREUR(37)
 199 :          GOTO 9999
 200 :       ELSE
 201 :          ICOND = 1
 201 :          CALL LIROBJ(MTYPR,IGRALP,ICOND,IRETOU)
 202 :          IF (IERR.NE.0) GOTO 9999
 203 :       ENDIF         
 204 : C
 205 : C**** Control du CHPOINT: QUEPOI
 206 : C      
 207 : C     INDIC = 1   -> on impose le pointeur du support geometrique (IM1)
 208 : C     INDIC = 0   -> on ne fait que verifier le support geometrique (IM1)
 209 : C
 210 : C     NBCOMP = 2 -> on teste le noms des composantes      
 211 : C
 212 : C     NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
 213 : C
 214 :       INDIC = 1
 215 :       NBCOMP = IDIM
 216 :       NOMTOT(1) = 'P1DX'
 217 :       NOMTOT(2) = 'P1DY'
 218 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'P1DZ'
 218 :       CALL QUEPOI(IGRALP, ICEN, INDIC, NBCOMP, NOMTOT)
 219 :       IF(IERR .NE. 0)THEN
 220 :          IERR0 = IERR
 221 : 
 222 : C
 223 : C******* Message d'erreur standard
 224 : C        -301 0 %m1:40
 225 : C
 226 :          MOTERR(1:40)  = 'CHPO2 = ???                             '      
 226 :          CALL ERREUR(-301)         
 227 : 
 228 :          GOTO 9999
 229 :       ENDIF
 230 : C      
 231 : C**** Lecture du CHPOINT IALALP, limited void fraction gradient
 232 : C
 233 :       ICOND = 1
 233 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 234 :       IF(IERR .NE. 0)GOTO 9999
 235 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 236 : C
 237 : C******* Message d'erreur standard
 238 : C        37 2
 239 : C        On ne trouve pas d'objet de type %m1:8
 240 : C     
 241 :          MOTERR(1:8) = 'CHPOINT ' 
 241 :          CALL ERREUR(37)
 242 :          GOTO 9999
 243 :       ELSE
 244 :          ICOND = 1
 244 :          CALL LIROBJ(MTYPR,IALALP,ICOND,IRETOU)
 245 :          IF (IERR.NE.0) GOTO 9999
 246 :       ENDIF         
 247 : C
 248 : C**** Control du CHPOINT: QUEPOI
 249 : C      
 250 :       INDIC = 1
 251 :       NBCOMP = 1
 252 :       NOMTOT(1) = 'P1'
 252 :       CALL QUEPOI(IALALP, ICEN, INDIC, NBCOMP, NOMTOT)
 253 :       IF(IERR .NE. 0)THEN
 254 :          IERR0 = IERR
 255 : 
 256 : C
 257 : C******* Message d'erreur standard
 258 : C        -301 0 %m1:40
 259 : C
 260 :          MOTERR(1:40)  = 'CHPO3 = ???                             '      
 260 :          CALL ERREUR(-301)         
 261 : 
 262 :          GOTO 9999
 263 :       ENDIF
 264 : C      
 265 : C**** Lecture du CHPOINT IUVC, VAPOUR VELOCITY
 266 : C
 267 :       ICOND = 1
 267 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 268 :       IF(IERR .NE. 0)GOTO 9999
 269 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 270 : C
 271 : C******* Message d'erreur standard
 272 : C        37 2
 273 : C        On ne trouve pas d'objet de type %m1:8
 274 : C     
 275 :          MOTERR(1:8) = 'CHPOINT ' 
 275 :          CALL ERREUR(37)
 276 :          GOTO 9999
 277 :       ELSE
 278 :          ICOND = 1
 278 :          CALL LIROBJ(MTYPR,IUVC,ICOND,IRETOU)
 279 :          IF (IERR.NE.0) GOTO 9999
 280 :       ENDIF         
 281 : C
 282 : C**** Control du CHPOINT
 283 : C     
 284 :       INDIC = 1
 285 :       NBCOMP = IDIM
 286 :       NOMTOT(1) = 'UVX '
 287 :       NOMTOT(2) = 'UVY '
 288 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'UVZ '
 288 :       CALL QUEPOI(IUVC, ICEN, INDIC, NBCOMP, NOMTOT)
 289 :       IF(IERR .NE. 0)THEN
 290 :          IERR0 = IERR
 291 : 
 292 : C
 293 : C******* Message d'erreur standard
 294 : C        -301 0 %m1:40
 295 : C
 296 :          MOTERR(1:40)  = 'CHPO4 = ???                             '      
 296 :          CALL ERREUR(-301)         
 297 : 
 298 :          GOTO 9999
 299 :       ENDIF  
 300 : C      
 301 : C**** Lecture du CHPOINT GRADUVC, vapour velocity gradient 
 302 : C
 303 :       ICOND = 1
 303 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 304 :       IF(IERR .NE. 0)GOTO 9999
 305 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 306 : C
 307 : C******* Message d'erreur standard
 308 : C        37 2
 309 : C        On ne trouve pas d'objet de type %m1:8
 310 : C     
 311 :          MOTERR(1:8) = 'CHPOINT ' 
 311 :          CALL ERREUR(37)
 312 :          GOTO 9999
 313 :       ELSE
 314 :          ICOND = 1
 314 :          CALL LIROBJ(MTYPR,IGRUVC,ICOND,IRETOU)
 315 :          IF (IERR.NE.0) GOTO 9999
 316 :       ENDIF         
 317 : C
 318 : C**** Control du CHPOINT: QUEPOI
 319 : C      
 320 :       INDIC = 1
 321 :       IF(IDIM .EQ.2)THEN
 322 :          NBCOMP = 4
 323 :          NOMTOT(1) = 'P1DX'
 324 :          NOMTOT(2) = 'P1DY'
 325 :          NOMTOT(3) = 'P2DX'
 326 :          NOMTOT(4) = 'P2DY'
 327 :       ELSE
 328 :          NBCOMP = 9
 329 :          NOMTOT(1) = 'P1DX'
 330 :          NOMTOT(2) = 'P1DY'
 331 :          NOMTOT(3) = 'P1DZ'
 332 :          NOMTOT(4) = 'P2DX'
 333 :          NOMTOT(5) = 'P2DY'
 334 :          NOMTOT(6) = 'P2DZ'
 335 :          NOMTOT(7) = 'P3DX'
 336 :          NOMTOT(8) = 'P3DY'
 337 :          NOMTOT(9) = 'P3DZ'
 338 :       ENDIF
 338 :       CALL QUEPOI(IGRUVC, ICEN, INDIC, NBCOMP, NOMTOT)
 339 :       IF(IERR .NE. 0)THEN
 340 :          IERR0 = IERR
 341 : 
 342 : C
 343 : C******* Message d'erreur standard
 344 : C        -301 0 %m1:40
 345 : C
 346 :          MOTERR(1:40)  = 'CHPO5 = ???                             '      
 346 :          CALL ERREUR(-301)         
 347 : 
 348 :          GOTO 9999
 349 :       ENDIF
 350 : C      
 351 : C**** Lecture du CHPOINT IALUVC, limited vapour velocity
 352 : C
 353 :       ICOND = 1
 353 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 354 :       IF(IERR .NE. 0)GOTO 9999
 355 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 356 : C
 357 : C******* Message d'erreur standard
 358 : C        37 2
 359 : C        On ne trouve pas d'objet de type %m1:8
 360 : C     
 361 :          MOTERR(1:8) = 'CHPOINT ' 
 361 :          CALL ERREUR(37)
 362 :          GOTO 9999
 363 :       ELSE
 364 :          ICOND = 1
 364 :          CALL LIROBJ(MTYPR,IALUVC,ICOND,IRETOU)
 365 :          IF (IERR.NE.0) GOTO 9999
 366 :       ENDIF         
 367 : C
 368 : C**** Control du CHPOINT: QUEPOI
 369 : C      
 370 :       INDIC = 1
 371 :       NBCOMP = IDIM
 372 :       NOMTOT(1) = 'P1'
 373 :       NOMTOT(2) = 'P2'
 374 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'P3  '
 374 :       CALL QUEPOI(IALUVC, ICEN, INDIC, NBCOMP, NOMTOT)
 375 :       IF(IERR .NE. 0)THEN
 376 :          IERR0 = IERR
 377 : 
 378 : C
 379 : C******* Message d'erreur standard
 380 : C        -301 0 %m1:40
 381 : C
 382 :          MOTERR(1:40)  = 'CHPO6 = ???                             '      
 382 :          CALL ERREUR(-301)         
 383 : 
 384 :          GOTO 9999
 385 :       ENDIF
 386 : C      
 387 : C**** Lecture du CHPOINT IULC, LIQUID VELOCITY
 388 : C
 389 :       ICOND = 1
 389 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 390 :       IF(IERR .NE. 0)GOTO 9999
 391 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 392 : C
 393 : C******* Message d'erreur standard
 394 : C        37 2
 395 : C        On ne trouve pas d'objet de type %m1:8
 396 : C     
 397 :          MOTERR(1:8) = 'CHPOINT ' 
 397 :          CALL ERREUR(37)
 398 :          GOTO 9999
 399 :       ELSE
 400 :          ICOND = 1
 400 :          CALL LIROBJ(MTYPR,IULC,ICOND,IRETOU)
 401 :          IF (IERR.NE.0) GOTO 9999
 402 :       ENDIF         
 403 : C
 404 : C**** Control du CHPOINT
 405 : C     
 406 :       INDIC = 1
 407 :       NBCOMP = IDIM
 408 :       NOMTOT(1) = 'ULX '
 409 :       NOMTOT(2) = 'ULY '
 410 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'ULZ '
 410 :       CALL QUEPOI(IULC, ICEN, INDIC, NBCOMP, NOMTOT)
 411 :       IF(IERR .NE. 0)THEN
 412 :          IERR0 = IERR
 413 : 
 414 : C
 415 : C******* Message d'erreur standard
 416 : C        -301 0 %m1:40
 417 : C
 418 :          MOTERR(1:40)  = 'CHPO4 = ???                             '      
 418 :          CALL ERREUR(-301)         
 419 : 
 420 :          GOTO 9999
 421 :       ENDIF  
 422 : C      
 423 : C**** Lecture du CHPOINT GRADULC, liquid velocity gradient 
 424 : C
 425 :       ICOND = 1
 425 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 426 :       IF(IERR .NE. 0)GOTO 9999
 427 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 428 : C
 429 : C******* Message d'erreur standard
 430 : C        37 2
 431 : C        On ne trouve pas d'objet de type %m1:8
 432 : C     
 433 :          MOTERR(1:8) = 'CHPOINT ' 
 433 :          CALL ERREUR(37)
 434 :          GOTO 9999
 435 :       ELSE
 436 :          ICOND = 1
 436 :          CALL LIROBJ(MTYPR,IGRULC,ICOND,IRETOU)
 437 :          IF (IERR.NE.0) GOTO 9999
 438 :       ENDIF         
 439 : C
 440 : C**** Control du CHPOINT: QUEPOI
 441 : C      
 442 :       INDIC = 1
 443 :       IF(IDIM .EQ.2)THEN
 444 :          NBCOMP = 4
 445 :          NOMTOT(1) = 'P1DX'
 446 :          NOMTOT(2) = 'P1DY'
 447 :          NOMTOT(3) = 'P2DX'
 448 :          NOMTOT(4) = 'P2DY'
 449 :       ELSE
 450 :          NBCOMP = 9
 451 :          NOMTOT(1) = 'P1DX'
 452 :          NOMTOT(2) = 'P1DY'
 453 :          NOMTOT(3) = 'P1DZ'
 454 :          NOMTOT(4) = 'P2DX'
 455 :          NOMTOT(5) = 'P2DY'
 456 :          NOMTOT(6) = 'P2DZ'
 457 :          NOMTOT(7) = 'P3DX'
 458 :          NOMTOT(8) = 'P3DY'
 459 :          NOMTOT(9) = 'P3DZ'
 460 :       ENDIF
 460 :       CALL QUEPOI(IGRULC, ICEN, INDIC, NBCOMP, NOMTOT)
 461 :       IF(IERR .NE. 0)THEN
 462 :          IERR0 = IERR
 463 : 
 464 : C
 465 : C******* Message d'erreur standard
 466 : C        -301 0 %m1:40
 467 : C
 468 :          MOTERR(1:40)  = 'CHPO5 = ???                             '      
 468 :          CALL ERREUR(-301)         
 469 : 
 470 :          GOTO 9999
 471 :       ENDIF
 472 : C      
 473 : C**** Lecture du CHPOINT IALULC, limited vapour velocity
 474 : C
 475 :       ICOND = 1
 475 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 476 :       IF(IERR .NE. 0)GOTO 9999
 477 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 478 : C
 479 : C******* Message d'erreur standard
 480 : C        37 2
 481 : C        On ne trouve pas d'objet de type %m1:8
 482 : C     
 483 :          MOTERR(1:8) = 'CHPOINT ' 
 483 :          CALL ERREUR(37)
 484 :          GOTO 9999
 485 :       ELSE
 486 :          ICOND = 1
 486 :          CALL LIROBJ(MTYPR,IALULC,ICOND,IRETOU)
 487 :          IF (IERR.NE.0) GOTO 9999
 488 :       ENDIF         
 489 : C
 490 : C**** Control du CHPOINT: QUEPOI
 491 : C      
 492 :       INDIC = 1
 493 :       NBCOMP = IDIM
 494 :       NOMTOT(1) = 'P1'
 495 :       NOMTOT(2) = 'P2'
 496 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'P3  '
 496 :       CALL QUEPOI(IALULC, ICEN, INDIC, NBCOMP, NOMTOT)
 497 :       IF(IERR .NE. 0)THEN
 498 :          IERR0 = IERR
 499 : 
 500 : C
 501 : C******* Message d'erreur standard
 502 : C        -301 0 %m1:40
 503 : C
 504 :          MOTERR(1:40)  = 'CHPO6 = ???                             '      
 504 :          CALL ERREUR(-301)         
 505 : 
 506 :          GOTO 9999
 507 :       ENDIF
 508 : C
 509 : C**** Lecture du CHPOINT IPC, PRESSURE
 510 : C
 511 :       ICOND = 1
 511 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 512 :       IF(IERR .NE. 0)GOTO 9999
 513 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 514 : C
 515 : C******* Message d'erreur standard
 516 : C        37 2
 517 : C        On ne trouve pas d'objet de type %m1:8
 518 : C     
 519 :          MOTERR(1:8) = 'CHPOINT ' 
 519 :          CALL ERREUR(37)
 520 :          GOTO 9999
 521 :       ELSE
 522 :          ICOND = 1
 522 :          CALL LIROBJ(MTYPR,IPC,ICOND,IRETOU)
 523 :          IF (IERR.NE.0) GOTO 9999
 524 :       ENDIF         
 525 : C
 526 : C**** Control du CHPOINT
 527 : C     
 528 :       INDIC = 1
 529 :       NBCOMP = 1
 530 :       NOMTOT(1) = 'SCAL'
 530 :       CALL QUEPOI(IPC, ICEN, INDIC, NBCOMP, NOMTOT)
 531 :       IF(IERR .NE. 0)THEN
 532 :          IERR0 = IERR
 533 : 
 534 : C
 535 : C******* Message d'erreur standard
 536 : C        -301 0 %m1:40
 537 : C
 538 :          MOTERR(1:40)  = 'CHPO7 = ???                             '      
 538 :          CALL ERREUR(-301)
 539 :  
 540 :          GOTO 9999
 541 :       ENDIF 
 542 : C      
 543 : C**** Lecture du CHPOINT IGRPC, pressure gradient
 544 : C
 545 :       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 ' 
 553 :          CALL ERREUR(37)
 554 :          GOTO 9999
 555 :       ELSE
 556 :          ICOND = 1
 556 :          CALL LIROBJ(MTYPR,IGRPC,ICOND,IRETOU)
 557 :          IF (IERR.NE.0) GOTO 9999
 558 :       ENDIF         
 559 : C
 560 : C**** Control du CHPOINT: QUEPOI
 561 : C      
 562 : C
 563 :       INDIC = 1
 564 :       NBCOMP = IDIM
 565 :       NOMTOT(1) = 'P1DX'
 566 :       NOMTOT(2) = 'P1DY'
 567 :       IF( IDIM  .EQ. 3) NOMTOT(3) = 'P1DZ'
 567 :       CALL QUEPOI(IGRPC, ICEN, INDIC, NBCOMP, NOMTOT)
 568 :       IF(IERR .NE. 0)THEN
 569 :          IERR0 = IERR
 570 : 
 571 : C
 572 : C******* Message d'erreur standard
 573 : C        -301 0 %m1:40
 574 : C
 575 :          MOTERR(1:40)  = 'CHPO8 = ???                             '      
 575 :          CALL ERREUR(-301)         
 576 : 
 577 :          GOTO 9999
 578 :       ENDIF
 579 : C      
 580 : C**** Lecture du CHPOINT IALPC, limited pressure gradient
 581 : C
 582 :       ICOND = 1
 582 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 583 :       IF(IERR .NE. 0)GOTO 9999
 584 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 585 : C
 586 : C******* Message d'erreur standard
 587 : C        37 2
 588 : C        On ne trouve pas d'objet de type %m1:8
 589 : C     
 590 :          MOTERR(1:8) = 'CHPOINT ' 
 590 :          CALL ERREUR(37)
 591 :          GOTO 9999
 592 :       ELSE
 593 :          ICOND = 1
 593 :          CALL LIROBJ(MTYPR,IALPC,ICOND,IRETOU)
 594 :          IF (IERR.NE.0) GOTO 9999
 595 :       ENDIF         
 596 : C
 597 : C**** Control du CHPOINT: QUEPOI
 598 : C      
 599 :       INDIC = 1
 600 :       NBCOMP = 1
 601 :       NOMTOT(1) = 'P1'
 601 :       CALL QUEPOI(IALPC, ICEN, INDIC, NBCOMP, NOMTOT)
 602 :       IF(IERR .NE. 0)THEN
 603 :          IERR0 = IERR
 604 : 
 605 : C
 606 : C******* Message d'erreur standard
 607 : C        -301 0 %m1:40
 608 : C
 609 :          MOTERR(1:40)  = 'CHPO9 = ???                             '      
 609 :          CALL ERREUR(-301)         
 610 : 
 611 :          GOTO 9999
 612 :       ENDIF
 613 : C
 614 : C**** Lecture du CHPOINT ITVC, VAPOUR TEMPERATURE
 615 : C
 616 :       ICOND = 1
 616 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 617 :       IF(IERR .NE. 0)GOTO 9999
 618 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 619 : C
 620 : C******* Message d'erreur standard
 621 : C        37 2
 622 : C        On ne trouve pas d'objet de type %m1:8
 623 : C     
 624 :          MOTERR(1:8) = 'CHPOINT ' 
 624 :          CALL ERREUR(37)
 625 :          GOTO 9999
 626 :       ELSE
 627 :          ICOND = 1
 627 :          CALL LIROBJ(MTYPR,ITVC,ICOND,IRETOU)
 628 :          IF (IERR.NE.0) GOTO 9999
 629 :       ENDIF         
 630 : C
 631 : C**** Control du CHPOINT
 632 : C     
 633 :       INDIC = 1
 634 :       NBCOMP = 1
 635 :       NOMTOT(1) = 'SCAL'
 635 :       CALL QUEPOI(ITVC, ICEN, INDIC, NBCOMP, NOMTOT)
 636 :       IF(IERR .NE. 0)THEN
 637 :          IERR0 = IERR
 638 : 
 639 : C
 640 : C******* Message d'erreur standard
 641 : C        -301 0 %m1:40
 642 : C
 643 :          MOTERR(1:40)  = 'CHPO10 = ???                            '      
 643 :          CALL ERREUR(-301)
 644 : 
 645 :          GOTO 9999
 646 :       ENDIF
 647 : C      
 648 : C**** Lecture du CHPOINT IGRTVC, vapour temprerature gradient
 649 : C
 650 :       ICOND = 1
 650 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 651 :       IF(IERR .NE. 0)GOTO 9999
 652 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 653 : C
 654 : C******* Message d'erreur standard
 655 : C        37 2
 656 : C        On ne trouve pas d'objet de type %m1:8
 657 : C     
 658 :          MOTERR(1:8) = 'CHPOINT ' 
 658 :          CALL ERREUR(37)
 659 :          GOTO 9999
 660 :       ELSE
 661 :          ICOND = 1
 661 :          CALL LIROBJ(MTYPR,IGRTVC,ICOND,IRETOU)
 662 :          IF (IERR.NE.0) GOTO 9999
 663 :       ENDIF         
 664 : C
 665 : C**** Control du CHPOINT: QUEPOI
 666 : C      
 667 : C
 668 :       INDIC = 1
 669 :       NBCOMP = IDIM
 670 :       NOMTOT(1) = 'P1DX'
 671 :       NOMTOT(2) = 'P1DY'
 672 :       IF( IDIM  .EQ. 3) NOMTOT(3) = 'P1DZ'
 672 :       CALL QUEPOI(IGRTVC, ICEN, INDIC, NBCOMP, NOMTOT)
 673 :       IF(IERR .NE. 0)THEN
 674 :          IERR0 = IERR
 675 : 
 676 : C
 677 : C******* Message d'erreur standard
 678 : C        -301 0 %m1:40
 679 : C
 680 :          MOTERR(1:40)  = 'CHPO11 = ???                            '      
 680 :          CALL ERREUR(-301)         
 681 : 
 682 :          GOTO 9999
 683 :       ENDIF
 684 : C      
 685 : C**** Lecture du CHPOINT IALTVC, limited vapour temperature gradient
 686 : C
 687 :       ICOND = 1
 687 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 688 :       IF(IERR .NE. 0)GOTO 9999
 689 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 690 : C
 691 : C******* Message d'erreur standard
 692 : C        37 2
 693 : C        On ne trouve pas d'objet de type %m1:8
 694 : C     
 695 :          MOTERR(1:8) = 'CHPOINT ' 
 695 :          CALL ERREUR(37)
 696 :          GOTO 9999
 697 :       ELSE
 698 :          ICOND = 1
 698 :          CALL LIROBJ(MTYPR,IALTVC,ICOND,IRETOU)
 699 :          IF (IERR.NE.0) GOTO 9999
 700 :       ENDIF         
 701 : C
 702 : C**** Control du CHPOINT: QUEPOI
 703 : C      
 704 :       INDIC = 1
 705 :       NBCOMP = 1
 706 :       NOMTOT(1) = 'P1'
 706 :       CALL QUEPOI(IALTVC, ICEN, INDIC, NBCOMP, NOMTOT)
 707 :       IF(IERR .NE. 0)THEN
 708 :          IERR0 = IERR
 709 : 
 710 : C
 711 : C******* Message d'erreur standard
 712 : C        -301 0 %m1:40
 713 : C
 714 :          MOTERR(1:40)  = 'CHPO12 = ???                            '      
 714 :          CALL ERREUR(-301)         
 715 : 
 716 :          GOTO 9999
 717 :       ENDIF
 718 : C
 719 : C**** Lecture du CHPOINT ITLC, LIQUID TEMPERATURE
 720 : C
 721 :       ICOND = 1
 721 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 722 :       IF(IERR .NE. 0)GOTO 9999
 723 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 724 : C
 725 : C******* Message d'erreur standard
 726 : C        37 2
 727 : C        On ne trouve pas d'objet de type %m1:8
 728 : C     
 729 :          MOTERR(1:8) = 'CHPOINT ' 
 729 :          CALL ERREUR(37)
 730 :          GOTO 9999
 731 :       ELSE
 732 :          ICOND = 1
 732 :          CALL LIROBJ(MTYPR,ITLC,ICOND,IRETOU)
 733 :          IF (IERR.NE.0) GOTO 9999
 734 :       ENDIF         
 735 : C
 736 : C**** Control du CHPOINT
 737 : C     
 738 :       INDIC = 1
 739 :       NBCOMP = 1
 740 :       NOMTOT(1) = 'SCAL'
 740 :       CALL QUEPOI(ITLC, ICEN, INDIC, NBCOMP, NOMTOT)
 741 :       IF(IERR .NE. 0)THEN
 742 :          IERR0 = IERR
 743 : 
 744 : C
 745 : C******* Message d'erreur standard
 746 : C        -301 0 %m1:40
 747 : C
 748 :          MOTERR(1:40)  = 'CHPO10 = ???                            '      
 748 :          CALL ERREUR(-301)
 749 : 
 750 :          GOTO 9999
 751 :       ENDIF
 752 : C      
 753 : C**** Lecture du CHPOINT IGRTLC, liquid temprerature gradient
 754 : C
 755 :       ICOND = 1
 755 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 756 :       IF(IERR .NE. 0)GOTO 9999
 757 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 758 : C
 759 : C******* Message d'erreur standard
 760 : C        37 2
 761 : C        On ne trouve pas d'objet de type %m1:8
 762 : C     
 763 :          MOTERR(1:8) = 'CHPOINT ' 
 763 :          CALL ERREUR(37)
 764 :          GOTO 9999
 765 :       ELSE
 766 :          ICOND = 1
 766 :          CALL LIROBJ(MTYPR,IGRTLC,ICOND,IRETOU)
 767 :          IF (IERR.NE.0) GOTO 9999
 768 :       ENDIF         
 769 : C
 770 : C**** Control du CHPOINT: QUEPOI
 771 : C      
 772 : C
 773 :       INDIC = 1
 774 :       NBCOMP = IDIM
 775 :       NOMTOT(1) = 'P1DX'
 776 :       NOMTOT(2) = 'P1DY'
 777 :       IF( IDIM  .EQ. 3) NOMTOT(3) = 'P1DZ'
 777 :       CALL QUEPOI(IGRTLC, ICEN, INDIC, NBCOMP, NOMTOT)
 778 :       IF(IERR .NE. 0)THEN
 779 :          IERR0 = IERR
 780 : 
 781 : C
 782 : C******* Message d'erreur standard
 783 : C        -301 0 %m1:40
 784 : C
 785 :          MOTERR(1:40)  = 'CHPO13 = ???                            '      
 785 :          CALL ERREUR(-301)         
 786 :  
 787 :          GOTO 9999
 788 :       ENDIF
 789 : C      
 790 : C**** Lecture du CHPOINT IALTLC, limited liquid temperature gradient
 791 : C
 792 :       ICOND = 1
 792 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 793 :       IF(IERR .NE. 0)GOTO 9999
 794 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 795 : C
 796 : C******* Message d'erreur standard
 797 : C        37 2
 798 : C        On ne trouve pas d'objet de type %m1:8
 799 : C     
 800 :          MOTERR(1:8) = 'CHPOINT ' 
 800 :          CALL ERREUR(37)
 801 :          GOTO 9999
 802 :       ELSE
 803 :          ICOND = 1
 803 :          CALL LIROBJ(MTYPR,IALTLC,ICOND,IRETOU)
 804 :          IF (IERR.NE.0) GOTO 9999
 805 :       ENDIF         
 806 : C
 807 : C**** Control du CHPOINT: QUEPOI
 808 : C      
 809 :       INDIC = 1
 810 :       NBCOMP = 1
 811 :       NOMTOT(1) = 'P1'
 811 :       CALL QUEPOI(IALTLC, ICEN, INDIC, NBCOMP, NOMTOT)
 812 :       IF(IERR .NE. 0)THEN
 813 :          IERR0 = IERR
 814 :  
 815 : C
 816 : C******* Message d'erreur standard
 817 : C        -301 0 %m1:40
 818 : C
 819 :          MOTERR(1:40)  = 'CHPO14 = ???                            '      
 819 :          CALL ERREUR(-301)         
 820 : 
 821 :          GOTO 9999
 822 :       ENDIF
 823 : C      
 824 : C**** Lecture du CHPOINT IRVC, VAPOUR DENSITY
 825 : C
 826 :       ICOND = 1
 826 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 827 :       IF(IERR .NE. 0)GOTO 9999
 828 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 829 : C
 830 : C******* Message d'erreur standard
 831 : C        37 2
 832 : C        On ne trouve pas d'objet de type %m1:8
 833 : C     
 834 :          MOTERR(1:8) = 'CHPOINT ' 
 834 :          CALL ERREUR(37)
 835 :          GOTO 9999
 836 :       ELSE
 837 :          ICOND = 1
 837 :          CALL LIROBJ(MTYPR,IRVC,ICOND,IRETOU)
 838 :          IF (IERR.NE.0) GOTO 9999
 839 :       ENDIF
 840 : 
 841 :       INDIC = 1
 842 :       NBCOMP = 1
 843 :       NOMTOT(1) = 'SCAL'
 843 :       CALL QUEPOI(IRVC, ICEN, INDIC, NBCOMP, NOMTOT)
 844 :       IF(IERR .NE. 0)THEN
 845 :          IERR0 = IERR
 846 : 
 847 : C
 848 : C******* Message d'erreur standard
 849 : C        -301 0 %m1:40
 850 : C
 851 :          MOTERR(1:40) = 'CHPO15 = ???   '       
 851 :          CALL ERREUR(-301)         
 852 : 
 853 :          GOTO 9999
 854 :       ENDIF
 855 : C      
 856 : C**** Lecture du CHPOINT IRLC, LIQUID DENSITY
 857 : C
 858 :       ICOND = 1
 858 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 859 :       IF(IERR .NE. 0)GOTO 9999
 860 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 861 : C
 862 : C******* Message d'erreur standard
 863 : C        37 2
 864 : C        On ne trouve pas d'objet de type %m1:8
 865 : C     
 866 :          MOTERR(1:8) = 'CHPOINT ' 
 866 :          CALL ERREUR(37)
 867 :          GOTO 9999
 868 :       ELSE
 869 :          ICOND = 1
 869 :          CALL LIROBJ(MTYPR,IRLC,ICOND,IRETOU)
 870 :          IF (IERR.NE.0) GOTO 9999
 871 :       ENDIF
 872 : 
 873 :       INDIC = 1
 874 :       NBCOMP = 1
 875 :       NOMTOT(1) = 'SCAL'
 875 :       CALL QUEPOI(IRLC, ICEN, INDIC, NBCOMP, NOMTOT)
 876 :       IF(IERR .NE. 0)THEN
 877 :          IERR0 = IERR
 878 : 
 879 : C
 880 : C******* Message d'erreur standard
 881 : C        -301 0 %m1:40
 882 : C
 883 :          MOTERR(1:40) = 'CHPO16 = ???   '       
 883 :          CALL ERREUR(-301)         
 884 :  
 885 :          GOTO 9999
 886 :       ENDIF
 887 :       IF(ORDTEM .EQ. 1)THEN
 888 : C
 889 : C******* Deux Dimensions, Une Espece, 2er ordre en espace, 1er ordre en
 890 : C        temps
 891 : C
 892 :          LOGTEM = .FALSE.
 893 :          DELTAT = 0.0D0
 894 :       ELSE
 895 :          LOGTEM = .TRUE.
 896 :          ICOND = 1
 896 :          CALL LIRREE(DELTAT,ICOND,IRETOU)
 897 :          IF(IERR .NE. 0)GOTO 9999
 898 :       ENDIF
 899 :       IF(IDIM .EQ. 2)THEN
 900 : C
 901 : C******* Deux Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
 902 : C        temps
 903 : C
 903 :       CALL PRE52F(LOGTEM,
 904 :      &     ICEN,IFACE,IFACEL,INORM,
 905 :      &     IALPH, IGRALP, IALALP,
 906 :      &     IUVC, IGRUVC, IALUVC,
 907 :      &     IULC, IGRULC, IALULC,
 908 :      &     IPC,  IGRPC,  IALPC,
 909 :      &     ITVC, IGRTVC, IALTVC,
 910 :      &     ITLC, IGRTLC, IALTLC,
 911 :      &     IRVC, IRLC,
 912 :      &     DELTAT,
 913 :      &     IALPHF, IUVF, IULF, IPF, ITVF, ITLF,
 914 :      &     IRVF, IRLF,
 915 :      &     LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
 916 :       ELSE
 917 : C
 918 : C******* Trois Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
 919 : C        temps
 920 : C
 920 :       CALL PRE62F(LOGTEM,
 921 :      &     ICEN,IFACE,IFACEL,INORM,
 922 :      &     IALPH, IGRALP, IALALP,
 923 :      &     IUVC, IGRUVC, IALUVC,
 924 :      &     IULC, IGRULC, IALULC,
 925 :      &     IPC,  IGRPC,  IALPC,
 926 :      &     ITVC, IGRTVC, IALTVC,
 927 :      &     ITLC, IGRTLC, IALTLC,
 928 :      &     IRVC, IRLC,
 929 :      &     DELTAT,
 930 :      &     IALPHF, IUVF, IULF, IPF, ITVF, ITLF,
 931 :      &     IRVF, IRLF,
 932 :      &     LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
 933 :       ENDIF
 934 : C
 935 : C
 936 : C**** Messages d'erreur      
 937 : C
 938 :       IF(LOGAN)THEN
 939 : C
 940 : C******* Anomalie detectée
 941 : C
 942 : C
 943 : C******* Message d'erreur standard
 944 : C        -301 0
 945 : C        %m1:40
 946 : C
 947 :          MOTERR(1:40) =  MESERR(1:40)
 947 :          CALL ERREUR(-301)
 948 : C
 949 : C******* Message d'erreur standard
 950 : C        5 3
 951 : C        Erreur anormale.contactez votre support
 952 : C         
 952 :          CALL ERREUR(5)
 953 :          GOTO 9999
 954 : C         
 955 :       ELSEIF(LOGNEG)THEN
 956 : C
 957 : C******* Message d'erreur standard
 958 : C        41 2
 959 : C        %m1:8 = %r1 inférieur à %r2
 960 : C
 961 :          MOTERR(1:8) = MESERR(1:8)
 962 :          REAERR(1) = REAL(VALER)
 963 :          REAERR(2) = 0.0
 963 :          CALL ERREUR(41)
 964 :          GOTO 9999
 965 :       ELSEIF(LOGBOR)THEN
 966 : C
 967 : C******* Message d'erreur standard
 968 : C        42 2
 969 : C        %m1:8 = %r1 non compris entre %r2 et %r3
 970 : C
 971 :          MOTERR(1:8) = MESERR(1:8)
 972 :          REAERR(1) = REAL(VALER)
 973 :          REAERR(2) = REAL(VAL1)
 974 :          REAERR(3) = REAL(VAL2)
 974 :          CALL ERREUR(42)
 975 :          GOTO 9999
 976 :       ELSE
 977 : C
 978 : C******* Ecriture de IALPHF, IUVF, IULF, IPF, 
 979 : C                    ITVF, ITLF, IRVF, IRLF
 980 :          MTYPR = 'MCHAML'
 980 :          CALL ECROBJ(MTYPR, IALPHF)
 980 :          CALL ECROBJ(MTYPR, IUVF)
 980 :          CALL ECROBJ(MTYPR, IULF)
 980 :          CALL ECROBJ(MTYPR, IPF)
 980 :          CALL ECROBJ(MTYPR, ITVF)
 980 :          CALL ECROBJ(MTYPR, ITLF)
 980 :          CALL ECROBJ(MTYPR, IRVF)
 980 :          CALL ECROBJ(MTYPR, IRLF)
 981 :       ENDIF  
 982 : C                  
 983 :  9999 CONTINUE
 984 : C      
 985 :       RETURN                                                                    
 986 :       END
 987 : 
 988 : 
 989 :  
 990 :  
 991 :  
 992 :  

© Cast3M 2003 - All rights reserved.
Disclaimer