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