1 : C KONF22 SOURCE PV 09/03/12 21:26:24 6325 2 : SUBROUTINE KONF22(INDMET, 3 : & IALPF,IUVF,IULF,IPF, 4 : & ITVF,ITLF,IRVF,IRLF, 5 : & ICHPSU,ICHPDI, 6 : & MELEMC,MELEMF,MELEFE, 7 : & ICHFLU,DT, 8 : & LOGNC,LOGAN,MESERR) 9 : C************************************************************************ 10 : C 11 : C PROJET : CASTEM 2000 12 : C 13 : C NOM : KONFL9 14 : C 15 : C DESCRIPTION : Voir KONV15 16 : C 17 : C 3D two phase flow 18 : C 19 : C LANGAGE : FORTRAN 77 + ESOPE 2000 (AVEC ESTENSIONS CISI) 20 : C 21 : C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF 22 : C MODIFIED FOR TWO PHASE FLOW BY 23 : C JOSÉ R. 24 : C 25 : C************************************************************************ 26 : C 27 : C 28 : C APPELES (OUTILS 29 : C CASTEM) : KRIPAD, LICHT 30 : C 31 : C APPELES (CALCUL) : FLURIE, FLUXVL, FLUVLH, FLHUS1, FLHUS2 32 : C 33 : C 34 : C************************************************************************ 35 : C 36 : C ENTREES 37 : C 38 : C 39 : C 1) PARAMETRES 40 : C 41 : C INDMET : 6 AUSM+ 42 : C 43 : C 44 : C 2) POINTEURS DES MCHAMLS 45 : C 46 : C IALPF : MCHAML SUR "FACEL" CONTAINING VOID FRACTION 47 : C 48 : C IUVF : MCHAML SUR "FACEL" CONTAINING VAPOUR VELOCITY 49 : C 50 : C IULF : MCHAML SUR "FACEL" CONTAINING LIQUID VELOCITY 51 : C 52 : C IPF : MCHAML SUR "FACEL" CONTAINING PRESSURE 53 : C 54 : C ITVF : MCHAML SUR "FACEL" CONTAINING VAPOUR TEMPERATURE 55 : C 56 : C ITLF : MCHAML SUR "FACEL" CONTAINING LIQUID TEMPERATURE 57 : C 58 : C IRVF : MCHAML SUR "FACEL" CONTAINING VAPOUR DENSITY 59 : C 60 : C IRLF : MCHAML SUR "FACEL" CONTAINING LIQUID DENSITY 61 : C 62 : C 63 : C 3) POINTEURS DE CHPOINTS DE LA TABLE DOMAINE 64 : C 65 : C ICHPSU : CHPOINT "FACE" CONTENANT LA SURFACE DES FACES 66 : C 67 : C ICHPDI : CHPOINT "CENTRE" CONTENANT LE DIAMETRE MINIMUM 68 : C DE CHAQUE ELEMENT 69 : C 70 : C 71 : C 4) POINTEURS DE MELEME DE LA TABLE DOMAINE 72 : C 73 : C MELEMC : MELEME 'CENTRE' DU SPG DES CENTRES 74 : C 75 : C MELEMF : MELEME 'FACE' DU SPG DES FACES 76 : C 77 : C MELEFE : MELEME 'FACEL' DU CONNECTIVITÉ FACES -> ELEM 78 : C 79 : C SORTIES 80 : C 81 : C ICHFLU : POINTEURS DE CHPOINTS "FACE" DES FLUX AUX INTERFACES: 82 : C 83 : C DT : PAS DE TEMPS POUR LE RESPECT DE LA CFL-LIKE CONDITION 84 : C DT < DIAMMIN /2 /MAX(LAMBDA_I) 85 : C EN MAILLAGE REGULIER CETTE CONDITION GARANTIE LA 86 : C NON-INTERACTION DES ONDES 87 : C 88 : C 89 : C LOGNC : (LOGICAL): SI .TRUE. LA METHODE DE NEWTON-RAPSON, UTILISÉE 90 : C DANS POUR LA SOLUTION DU PROBLEME RIEMANN EXACTE OU DANS 91 : C L'ALGORITHM HUS, N'A PAS BIEN MARCHÉEE; MESERR = 'GOUDUNOV' 92 : C OU 'HUS'. 93 : C 94 : C LOGAN : (LOGICAL): SI .TRUE. UNE ANOMALIE À ÉTÉ DETECTÉE 95 : C 96 : C MESERR : POUR L'ECRITURE DES MESSAGES D'ERREURS 97 : C 98 : C************************************************************************ 99 : C 100 : C HISTORIQUE (ANOMALIES ET MODIFICATIONS ÉVENTUELLES) 101 : C 102 : C HISTORIQUE : 103 : C 104 : C************************************************************************ 105 : C 106 : C 107 : C N.B.: ON SUPPOSE QU'ON A DÉJÀ CONTROLLÉ RO, P > 0 108 : C GAMMA \IN (1,3) 109 : C Y \IN (0,1) 110 : C SI NON IL FAUT LE FAIRE!!! 111 : C 112 : C************************************************************************ 113 : C 114 : C 115 : C**** VARIABLES DE COOPTIO 116 : C 117 : INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR 118 : & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ 119 : & ,IOPER, IOSGB, IOGRA, IOSAU, IORES 120 : & ,IECHO, IIMPI, IOSPI 121 : & ,IDIM, IFICLE, IPREFI 122 : & ,MCOORD 123 : & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE 124 : & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU 125 : & ,NORINC,NORVAL,NORIND,NORVAD 126 : & ,NUCROU, IPSAUV 127 : C 128 : INTEGER I1 129 : & ,INDMET 130 : & ,IALPF,IUVF,IULF,IPF,ITVF,ITLF,IRVF,IRLF 131 : & ,ICHPSU,ICHPDI,MELEMC,MELEMF,MELEFE 132 : & ,IGEOMC,IGEOMF 133 : & ,ICHFLU 134 : & ,NESP, NFAC 135 : & ,NLCF, NGCEG, NGCED, NLCEG, NLCED 136 : & ,NGCF, NLCF1, SPG1, SPG2 137 : REAL*8 DT, UNSDT 138 : & , ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG, PG, TVG, TLG 139 : & , RVG, RLG 140 : & , ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD, PD, TVD, TLD 141 : & , RVD, RLD 142 : & , SURF, CNX, CNY, CNZ, CTX , CTY, CTZ, CVX, CVY, CVZ 143 : & , CELL, DIAMG, DIAMD, DIAM 144 : & , AVSON, LAMDAV, ALSON, LAMDAL, kk 145 : LOGICAL LOGNC, LOGAN 146 : CHARACTER*(40) MESERR 147 : CHARACTER*(8) TYPE 148 : C 149 : C**** LES INCLUDES 150 : C 151 : -INC CCOPTIO 152 : -INC SMCHAML 153 : POINTEUR MELALP.MELVAL, MELP.MELVAL, 154 : & MELTV.MELVAL, MELTL.MELVAL, 155 : & MELRV.MELVAL, MELRL.MELVAL 156 : POINTEUR MELUVN.MELVAL, MELUVT.MELVAL, MELUVV.MELVAL, 157 : & MELULN.MELVAL, MELULT.MELVAL, MELULV.MELVAL, 158 : & MLVNX.MELVAL, MLVNY.MELVAL, MLVNZ.MELVAL, 159 : & MLVT1X.MELVAL, MLVT1Y.MELVAL, MLVT1Z.MELVAL, 160 : & MLVT2X.MELVAL, MLVT2Y.MELVAL, MLVT2Z.MELVAL, 161 : & MLLNX.MELVAL, MLLNY.MELVAL, MLLNZ.MELVAL, 162 : & MLLT1X.MELVAL, MLLT1Y.MELVAL, MLLT1Z.MELVAL, 163 : & MLLT2X.MELVAL, MLLT2Y.MELVAL, MLLT2Z.MELVAL 164 : -INC SMCHPOI 165 : POINTEUR MPOVSU.MPOVAL, MPOVDI.MPOVAL 166 : & , MPOFLU.MPOVAL 167 : POINTEUR MCHAMY.MCHAML 168 : -INC SMELEME 169 : -INC SMLMOTS 170 : -INC SMLENTI 171 : C 172 : C**** FLUX AT EACH INTERFACE AND EACH REFERENCE FRAMEWORK 173 : C 174 : SEGMENT IFLUX 175 : REAL*8 FLUX(10) 176 : ENDSEGMENT 177 : POINTEUR IFLU1.IFLUX 178 : C 179 : C**** INITIALISATION DES MCHAMLS 180 : C 181 : C**** VOID FRACTION 182 : C 183 : MCHEL1 = IALPF 184 : SEGACT MCHEL1 185 : MCHAM1 = MCHEL1.ICHAML(1) 186 : SEGACT MCHAM1 187 : MELALP = MCHAM1.IELVAL(1) 188 : SEGDES MCHEL1 189 : SEGDES MCHAM1 190 : C 191 : C**** VAPOUR VELOCITY AND DIRECTOR COSINES (COSENOS DIRECTORES VAMOS??) 192 : C 193 : MCHEL1 = IUVF 194 : SEGACT MCHEL1 195 : C 196 : C**** LA VITESSE A COMME SPG MELEFE 197 : C LE COSINUS DIRECTEURS ONT COMME SPG MELEMF 198 : C 199 : C MCHAM1 -> COSINUS DIRECTEURS 200 : C MCHAM2 -> VITESSE 201 : C 202 : SPG1 = MCHEL1.IMACHE(1) 203 : SPG2 = MCHEL1.IMACHE(2) 204 : IF((SPG1 .EQ. MELEMF) .AND. (SPG2 .EQ. MELEFE))THEN 205 : MCHAM1 = MCHEL1.ICHAML(1) 206 : MCHAM2 = MCHEL1.ICHAML(2) 207 : ELSEIF((SPG1 .EQ. MELEFE) .AND. (SPG2 .EQ. MELEMF))THEN 208 : MCHAM1 = MCHEL1.ICHAML(2) 209 : MCHAM2 = MCHEL1.ICHAML(1) 210 : ELSE 211 : LOGAN = .TRUE. 212 : GOTO 9999 213 : ENDIF 214 : SEGACT MCHAM1 215 : MLVNX = MCHAM1.IELVAL(1) 216 : MLVNY = MCHAM1.IELVAL(2) 217 : MLVNZ = MCHAM1.IELVAL(3) 218 : MLVT1X = MCHAM1.IELVAL(4) 219 : MLVT1Y = MCHAM1.IELVAL(5) 220 : MLVT1Z = MCHAM1.IELVAL(6) 221 : MLVT2X = MCHAM1.IELVAL(7) 222 : MLVT2Y = MCHAM1.IELVAL(8) 223 : MLVT2Z = MCHAM1.IELVAL(9) 224 : 225 : SEGDES MCHAM1 226 : SEGACT MCHAM2 227 : MELUVN = MCHAM2.IELVAL(1) 228 : MELUVT = MCHAM2.IELVAL(2) 229 : MELUVV = MCHAM2.IELVAL(3) 230 : SEGDES MCHAM2 231 : SEGDES MCHEL1 232 : C 233 : C**** LIQUID VELOCITY AND DIRECTOR COSINES (COSENOS DIRECTORES VAMOS??) 234 : C CLARAMENTE TENGO QUE ELIMINAR LOS COSENOS DIRECTORES DE LA 235 : C VELOCIDAD DEL LIQUIDO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 236 : C 237 : MCHEL1 = IULF 238 : SEGACT MCHEL1 239 : C 240 : C**** LA VITESSE A COMME SPG MELEFE 241 : C LE COSINUS DIRECTEURS ONT COMME SPG MELEMF 242 : C 243 : C MCHAM1 -> COSINUS DIRECTEURS 244 : C MCHAM2 -> VITESSE 245 : C 246 : SPG1 = MCHEL1.IMACHE(1) 247 : SPG2 = MCHEL1.IMACHE(2) 248 : IF((SPG1 .EQ. MELEMF) .AND. (SPG2 .EQ. MELEFE))THEN 249 : MCHAM1 = MCHEL1.ICHAML(1) 250 : MCHAM2 = MCHEL1.ICHAML(2) 251 : ELSEIF((SPG1 .EQ. MELEFE) .AND. (SPG2 .EQ. MELEMF))THEN 252 : MCHAM1 = MCHEL1.ICHAML(2) 253 : MCHAM2 = MCHEL1.ICHAML(1) 254 : ELSE 255 : LOGAN = .TRUE. 256 : GOTO 9999 257 : ENDIF 258 : SEGACT MCHAM1 259 : MLLNX = MCHAM1.IELVAL(1) 260 : MLLNY = MCHAM1.IELVAL(2) 261 : MLLNZ = MCHAM1.IELVAL(3) 262 : MLLT1X = MCHAM1.IELVAL(4) 263 : MLLT1Y = MCHAM1.IELVAL(5) 264 : MLLT1Z = MCHAM1.IELVAL(6) 265 : MLLT2X = MCHAM1.IELVAL(7) 266 : MLLT2Y = MCHAM1.IELVAL(8) 267 : MLLT2Z = MCHAM1.IELVAL(9) 268 : SEGDES MCHAM1 269 : SEGACT MCHAM2 270 : MELULN = MCHAM2.IELVAL(1) 271 : MELULT = MCHAM2.IELVAL(2) 272 : MELULV = MCHAM2.IELVAL(3) 273 : SEGDES MCHAM2 274 : SEGDES MCHEL1 275 : C 276 : C**** PRESSURE 277 : C 278 : MCHEL1 = IPF 279 : SEGACT MCHEL1 280 : MCHAM1 = MCHEL1.ICHAML(1) 281 : SEGACT MCHAM1 282 : MELP = MCHAM1.IELVAL(1) 283 : SEGDES MCHEL1 284 : SEGDES MCHAM1 285 : C 286 : C**** VAPOUR TEMPERATURE 287 : C 288 : MCHEL1 = ITVF 289 : SEGACT MCHEL1 290 : MCHAM1 = MCHEL1.ICHAML(1) 291 : SEGACT MCHAM1 292 : MELTV = MCHAM1.IELVAL(1) 293 : SEGDES MCHEL1 294 : SEGDES MCHAM1 295 : C 296 : C**** LIQUID TEMPERATURE 297 : C 298 : MCHEL1 = ITLF 299 : SEGACT MCHEL1 300 : MCHAM1 = MCHEL1.ICHAML(1) 301 : SEGACT MCHAM1 302 : MELTL = MCHAM1.IELVAL(1) 303 : SEGDES MCHEL1 304 : SEGDES MCHAM1 305 : C 306 : C**** VAPOUR DENSITY 307 : C 308 : MCHEL1 = IRVF 309 : SEGACT MCHEL1 310 : MCHAM1 = MCHEL1.ICHAML(1) 311 : SEGACT MCHAM1 312 : MELRV = MCHAM1.IELVAL(1) 313 : SEGDES MCHEL1 314 : SEGDES MCHAM1 315 : C 316 : C**** LIQUID DENSITY 317 : C 318 : MCHEL1 = IRLF 319 : SEGACT MCHEL1 320 : MCHAM1 = MCHEL1.ICHAML(1) 321 : SEGACT MCHAM1 322 : MELRL = MCHAM1.IELVAL(1) 323 : SEGDES MCHEL1 324 : SEGDES MCHAM1 325 : C 326 : C**** INITIALISATION DES MELEMES 327 : C 328 : C 'CENTRE', 'FACEL' 329 : C 330 : IPT2 = MELEFE 331 : SEGACT IPT2 332 : NFAC = IPT2.NUM(/2) 333 : C 334 : C**** KRIPAD POUR LA CORRESPONDANCE GLOBAL/LOCAL DE CENTRE 335 : C 335 : CALL KRIPAD(MELEMC,MLENT1) 336 : C 337 : C**** MLENTI1 A MCORD.XCOORD(/1)/(IDIM+1) ELEMENTS 338 : C 339 : C SI I EST LE NUMERO GLOBAL D'UN NOEUD DE ICEN, 340 : C MLENT1.LECT(I) CONTIENT SA POSITION, I.E. 341 : C 342 : C I = NUMERO GLOBAL DU NOEUD CENTRE 343 : C MLENT1.LECT(I) = NUMERO LOCAL DU NOEUD CENTRE 344 : C 345 : C MLENT1 DÉJÀ ACTIVÉ, I.E. 346 : C 347 : C SEGACT MLENT1 348 : C 349 : C 350 : C**** KRIPAD POUR LA CORRESPONDANCE GLOBAL/LOCAL DE 'FACE' 351 : C 351 : CALL KRIPAD(MELEMF,MLENT2) 352 : C SEGACT MELNT2 353 : C 354 : C**** INITIALISATION DE FLUX 355 : C 356 : SEGINI IFLU1 357 : C 358 : C**** CHPOINTS DE LA TABLE DOMAINE 359 : C 359 : CALL LICHT(ICHPSU,MPOVSU,TYPE,IGEOMF) 359 : CALL LICHT(ICHPDI,MPOVDI,TYPE,IGEOMC) 360 : C 361 : C**** LICHT ACTIVE LES MPOVALS EN *MOD 362 : C 363 : C I.E. 364 : C 365 : C SEGACT MPOVSU*MOD 366 : C SEGACT MPOVDI*MOD 367 : C 368 : IF(IGEOMF .NE. MELEMF)THEN 369 : MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. ' 370 : LOGAN = .TRUE. 371 : GOTO 9999 372 : ENDIF 373 : IF(IGEOMC .NE. MELEMC)THEN 374 : MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. ' 375 : LOGAN = .TRUE. 376 : GOTO 9999 377 : ENDIF 378 : C 379 : C**** LES FLUX AUX FACE 380 : C 381 : C LA DENSITÉ 382 : C 382 : CALL LICHT(ICHFLU,MPOFLU,TYPE,IGEOMF) 383 : C 384 : C SEGACT MPOFLU*MOD 385 : C 386 : IF(IGEOMC .NE. MELEMC)THEN 387 : MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. ' 388 : LOGAN = .TRUE. 389 : GOTO 9999 390 : ENDIF 391 : C 392 : C**** ACTIVATION DES MCHAMLS 393 : C 394 : SEGACT MELALP 395 : SEGACT MELP 396 : SEGACT MELTV 397 : SEGACT MELTL 398 : SEGACT MELRV 399 : SEGACT MELRL 400 : 401 : SEGACT MELUVN 402 : SEGACT MELUVT 403 : SEGACT MELUVV 404 : 405 : SEGACT MELULN 406 : SEGACT MELULT 407 : SEGACT MELULV 408 : 409 : SEGACT MLVNX 410 : SEGACT MLVNY 411 : SEGACT MLVNZ 412 : SEGACT MLVT1X 413 : SEGACT MLVT1Y 414 : SEGACT MLVT1Z 415 : SEGACT MLVT2X 416 : SEGACT MLVT2Y 417 : SEGACT MLVT2Z 418 : 419 : SEGACT MLLNX 420 : SEGACT MLLNY 421 : SEGACT MLLNZ 422 : SEGACT MLLT1X 423 : SEGACT MLLT1Y 424 : SEGACT MLLT1Z 425 : SEGACT MLLT2X 426 : SEGACT MLLT2Y 427 : SEGACT MLLT2Z 428 : C 429 : C**** INITIALISATION DE 1/DT 430 : C 431 : UNSDT = 0.0D0 432 : C 433 : C**** BOUCLE SUR FACEL POUR LE CALCUL DU FLUX 434 : C 435 : DO NLCF = 1, NFAC 436 : C 437 : C******* NLCF = NUMERO LOCAL DU CENTRE DE FACEL 438 : C NGCF = NUMERO GLOBAL DU CENTRE DE FACEL 439 : C NLCF1 = NUMERO LOCAL DU CENTRE DE FACE 440 : C NGCEG = NUMERO GLOBAL DU CENTRE ELT "GAUCHE" 441 : C NLCEG = NUMERO LOCAL DU CENTRE ELT "GAUCHE" 442 : C NGCED = NUMERO GLOBAL DU CENTRE ELT "DROITE" 443 : C NLCED = NUMERO LOCAL DU CENTRE ELT "DROITE" 444 : C 445 : NGCEG = IPT2.NUM(1,NLCF) 446 : NGCED = IPT2.NUM(3,NLCF) 447 : NGCF = IPT2.NUM(2,NLCF) 448 : NLCF1 = MLENT2.LECT(NGCF) 449 : NLCEG = MLENT1.LECT(NGCEG) 450 : NLCED = MLENT1.LECT(NGCED) 451 : C 452 : C******* NLCF != NLCF1 -> L'AUTEUR (MOI) N'A RIEN COMPRIS. 453 : C 454 : IF(NLCF .NE. NLCF1)THEN 455 : MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. ' 456 : LOGAN = .TRUE. 457 : GOTO 9999 458 : ENDIF 459 : C 460 : C******* RECUPERATION DES ETATS "GAUCHE" ET "DROITE" 461 : C 462 : ALPG = MELALP.VELCHE(1,NLCF) 463 : UVNG = MELUVN.VELCHE(1,NLCF) 464 : UVTG = MELUVT.VELCHE(1,NLCF) 465 : UVVG = MELUVV.VELCHE(1,NLCF) 466 : ULNG = MELULN.VELCHE(1,NLCF) 467 : ULTG = MELULT.VELCHE(1,NLCF) 468 : ULVG = MELULV.VELCHE(1,NLCF) 469 : PG = MELP.VELCHE(1,NLCF) 470 : TVG = MELTV.VELCHE(1,NLCF) 471 : TLG = MELTL.VELCHE(1,NLCF) 472 : RVG = MELRV.VELCHE(1,NLCF) 473 : RLG = MELRL.VELCHE(1,NLCF) 474 : C 475 : ALPD = MELALP.VELCHE(3,NLCF) 476 : UVND = MELUVN.VELCHE(3,NLCF) 477 : UVTD = MELUVT.VELCHE(3,NLCF) 478 : UVVD = MELUVV.VELCHE(3,NLCF) 479 : ULND = MELULN.VELCHE(3,NLCF) 480 : ULTD = MELULT.VELCHE(3,NLCF) 481 : ULVD = MELULV.VELCHE(3,NLCF) 482 : PD = MELP.VELCHE(3,NLCF) 483 : TVD = MELTV.VELCHE(3,NLCF) 484 : TLD = MELTL.VELCHE(3,NLCF) 485 : RVD = MELRV.VELCHE(3,NLCF) 486 : RLD = MELRL.VELCHE(3,NLCF) 487 : C 488 : CNX = MLVNX.VELCHE(1,NLCF) 489 : CNY = MLVNY.VELCHE(1,NLCF) 490 : CNZ = MLVNZ.VELCHE(1,NLCF) 491 : CTX = MLVT1X.VELCHE(1,NLCF) 492 : CTY = MLVT1Y.VELCHE(1,NLCF) 493 : CTZ = MLVT1Z.VELCHE(1,NLCF) 494 : CVX = MLVT2X.VELCHE(1,NLCF) 495 : CVY = MLVT2Y.VELCHE(1,NLCF) 496 : CVZ = MLVT2Z.VELCHE(1,NLCF) 497 : 498 : C 499 : C******* Calcul du flux aux interfaces 500 : C 501 : C AUSM+ (1) and "preconditioned" AUSM+ (2) 502 : IF((INDMET .EQ. 1) .OR. (INDMET .EQ. 2))THEN 502 : CALL fAP32F(INDMET, 503 : & ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG, 504 : & PG, TVG, TLG, RVG, RLG, 505 : & ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD, 506 : & PD, TVD, TLD, RVD, RLD, 507 : & IFLU1.FLUX) 508 : C AUSMDV (3) and "preconditioned" AUSMDV (3) 509 : ELSE IF((INDMET .EQ. 3) .OR. (INDMET .EQ. 4))THEN 509 : CALL fDV32F(INDMET, 510 : & ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG, 511 : & PG, TVG, TLG, RVG, RLG, 512 : & ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD, 513 : & PD, TVD, TLD, RVD, RLD, 514 : & IFLU1.FLUX) 515 : ELSE 516 : C 517 : C******** Message d'erreur standard 518 : C 251 2 519 : C Tentative d'utilisation d'une option non implémentée 520 : C 520 : CALL ERREUR(251) 521 : END IF 522 : IF(LOGAN) GOTO 9999 523 : IF(LOGNC) GOTO 9999 524 : C 525 : C******* Ecriture des flux 526 : C 527 : C FLUX(1) = alpha rv uvn 528 : C FLUX(2) = (1-alpha) rl uln 529 : C FLUX(3) = alpha rv uvx uvn + alpha p 530 : C FLUX(4) = alpha rv uvy uvn + alpha p 531 : C FLUX(5) = alpha rv uvz uvn + alpha p 532 : C FLUX(6) = (1-alpha) rl ulx uln + (1-alpha) p 533 : C FLUX(7) = (1-alpha) rl uly uln + (1-alpha) p 534 : C FLUX(8) = (1-alpha) rl ulz uln + (1-alpha) p 535 : C FLUX(9) = alpha rv Hv uvn 536 : C FLUX(10) = (1-alpha) rl Hl uln 537 : C 538 : SURF = MPOVSU.VPOCHA(NLCF,1) 539 : 540 : MPOFLU.VPOCHA(NLCF,1) = (IFLU1.FLUX(1)*SURF) 541 : 542 : MPOFLU.VPOCHA(NLCF,2) = (IFLU1.FLUX(2)*SURF) 543 : 544 : MPOFLU.VPOCHA(NLCF,3) = ((IFLU1.FLUX(3)*CNX + IFLU1.FLUX(5)*CTX 545 : & + IFLU1.FLUX(7)*CVX)*SURF) 546 : 547 : MPOFLU.VPOCHA(NLCF,4) = ((IFLU1.FLUX(3)*CNY + IFLU1.FLUX(5)*CTY 548 : & + IFLU1.FLUX(7)*CVY)*SURF) 549 : 550 : MPOFLU.VPOCHA(NLCF,5) = ((IFLU1.FLUX(3)*CNZ + IFLU1.FLUX(5)*CTZ 551 : & + IFLU1.FLUX(7)*CVZ)*SURF) 552 : 553 : MPOFLU.VPOCHA(NLCF,6) = ((IFLU1.FLUX(4)*CNX + IFLU1.FLUX(6)*CTX 554 : & + IFLU1.FLUX(8)*CVX)*SURF) 555 : 556 : MPOFLU.VPOCHA(NLCF,7) = ((IFLU1.FLUX(4)*CNY+IFLU1.FLUX(6)*CTY 557 : & + IFLU1.FLUX(8)*CVY)*SURF) 558 : 559 : MPOFLU.VPOCHA(NLCF,8) = ((IFLU1.FLUX(4)*CNZ+IFLU1.FLUX(6)*CTZ 560 : & + IFLU1.FLUX(8)*CVZ)*SURF) 561 : 562 : MPOFLU.VPOCHA(NLCF,9) = (IFLU1.FLUX(9)*SURF) 563 : 564 : MPOFLU.VPOCHA(NLCF,10) = (IFLU1.FLUX(10)*SURF) 565 : 566 : C 567 : C******* CALCUL DU PAS DU TEMPS (CFL) 568 : C 569 : C****** A) ETAT A L'ITNERFACE 570 : C 571 : DIAMG = MPOVDI.VPOCHA(NLCEG,1) 572 : DIAMD = MPOVDI.VPOCHA(NLCED,1) 573 : DIAM = MIN(DIAMG,DIAMD) 574 : C CELL = 1.0D0/DIAM/CELLT 575 : C IF(CELL .GT. UNSDT)THEN 576 : C UNSDT = CELL 577 : C ENDIF 578 : C 579 : C****** B) ETAT GAUCHE 580 : C gammav = 1.4D0 581 : C Cpv = 1008.D0 J/(kg·K) 582 : C gammal = 2.8D0 583 : C Cpl = 4186.D0 J/(kg·K) 584 : C pil = 8.5D8 Pa 585 : 586 : AVSON = DSQRT(1008.d0*(1.4d0 - 1.d0)*TVG) 587 : LAMDAV = DABS(UVNG) + AVSON 588 : ALSON = DSQRT(4186.D0*(2.8d0 - 1.d0)*TLG) 589 : LAMDAL = DABS(ULNG) + ALSON 590 : CELL = 1.D0/(((1.d0 - ALPG)/LAMDAL + ALPG/LAMDAV)* DIAM) 591 : IF(CELL .GT. UNSDT)THEN 592 : UNSDT = CELL 593 : ENDIF 594 : C 595 : C****** C) ETAT DROITE 596 : C 597 : AVSON = DSQRT(1008.d0*(1.4d0 - 1.d0)*TVD) 598 : LAMDAV = DABS(UVND) + AVSON 599 : ALSON = DSQRT(4186.D0*(2.8d0 - 1.d0)*TLD) 600 : LAMDAL = DABS(ULND) + ALSON 601 : CELL = 1.D0/(((1.d0 - ALPD)/LAMDAL + ALPD/LAMDAV)* DIAM) 602 : IF(CELL .GT. UNSDT)THEN 603 : UNSDT = CELL 604 : ENDIF 605 : C 606 : C 607 : C**** FIN BOUCLE SUR FACEL 608 : C 609 : ENDDO 610 : C 611 : C**** PAS DU TEMPS (CONDITION DE NON INTERACTION EN 1D) 612 : C 613 : DT = 1.D0 / UNSDT 614 : C 615 : C**** DESACTIVATION DES SEGMENTS ET 616 : C ON DETRUIT LES MCHAMLS 617 : C 618 : C**** SEGSUP FRAMAG 619 : C SEGSUP FRAMAD 620 : C 621 : C 622 : C 623 : SEGSUP MLENT1 624 : SEGSUP MLENT2 625 : SEGDES IPT2 626 : 627 : SEGSUP IFLU1 628 : 629 : SEGDES MPOVSU 630 : SEGDES MPOVDI 631 : 632 : SEGDES MPOFLU 633 : 634 : SEGDES MELALP 635 : SEGDES MELP 636 : SEGDES MELTV 637 : SEGDES MELTL 638 : SEGDES MELRV 639 : SEGDES MELRL 640 : 641 : SEGDES MELUVN 642 : SEGDES MELUVT 643 : SEGDES MELUVV 644 : 645 : SEGDES MELULN 646 : SEGDES MELULT 647 : SEGDES MELULV 648 : 649 : SEGDES MLVNX 650 : SEGDES MLVNY 651 : SEGDES MLVNZ 652 : SEGDES MLVT1X 653 : SEGDES MLVT1Y 654 : SEGDES MLVT1Z 655 : SEGDES MLVT2X 656 : SEGDES MLVT2Y 657 : SEGDES MLVT2Z 658 : 659 : SEGDES MLLNX 660 : SEGDES MLLNY 661 : SEGDES MLLNZ 662 : SEGDES MLLT1X 663 : SEGDES MLLT1Y 664 : SEGDES MLLT1Z 665 : SEGDES MLLT2X 666 : SEGDES MLLT2Y 667 : SEGDES MLLT2Z 668 : CC 669 : 9999 CONTINUE 670 : C 671 : RETURN 672 : END 673 : 674 :
© Cast3M 2003 - All rights reserved.
Disclaimer