Download pre22f.eso

Back to the list

   1 : C PRE22F    SOURCE    PV        09/03/12    21:30:50     6325           
   2 :       SUBROUTINE PRE22F(ICEN,IFACE,IFACEL,INORM,
   3 :      &                   IALP, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC,
   4 :      &                   IALPF, IUVF, IULF, IPF, ITVF, ITLF,
   5 :      &                   IRVF, IRLF,
   6 :      &                   LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
   7 : C************************************************************************
   8 : C
   9 : C PROJET            :  CASTEM 2000
  10 : C
  11 : C NOM               :  PRE22F
  12 : C
  13 : C DESCRIPTION       :  Voir PRE12F
  14 : C
  15 : C                      Two Dimensions
  16 : C
  17 : C                      Two Fluid Flow, 1st order in time and space
  18 : C
  19 : C                      Creations des objets MCHAML IALPF, IUVF, IULF, 
  20 : C                      IPF, ITVF, ITLF, IRVF, IRLF
  21 : C     
  22 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  23 : C      
  24 : C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/TTMF
  25 : C                      Modified for two-fluid flow by
  26 : C                      Jose R. Garcia-Cascales            
  27 : C     
  28 : C************************************************************************
  29 : C
  30 : C APPELES (Outils)  :  KRIPAD, LICHT  
  31 : C
  32 : C APPELES (Calcul)  :  AUCUN 
  33 : C
  34 : C************************************************************************
  35 : C
  36 : C ENTREES
  37 : C
  38 : C     1) Pointeurs de MELEMEs et de CHPOINTs de la table DOMAINE
  39 : C
  40 : C     ICEN    : MELEME de 'POI1' SPG des CENTRES
  41 : C
  42 : C     IFACE   : MELEME de 'POI1' SPG des FACES
  43 : C
  44 : C     IFACEL  : MELEME de 'SEG3' avec
  45 : C               CENTRE d'Elt "gauche"
  46 : C               CENTRE de Face
  47 : C               CENTRE d'Elt "droite"
  48 : C
  49 : C               N.B. = IFACE.NUM(i,1) = IFACEL.NUM(i,2)
  50 : C
  51 : C     INORM   : CHPOINT des cosinus directeurs de normales aux faces
  52 : C     
  53 : C     2) Pointeurs des  CHPOINTs
  54 : C
  55 : C     IALP   : CHPOINT "CENTRE" containing void fraction
  56 : C
  57 : C     IUVC    : CHPOINT "CENTRE" containing UVX & UVY
  58 : C
  59 : C     IULC    : CHPOINT "CENTRE" containing ULX & ULY
  60 : C
  61 : C     IPC     : CHPOINT "CENTRE" containing P
  62 : C
  63 : C     ITV     : CHPOINT "CENTRE" containing TV
  64 : C
  65 : C     ITL     : CHPOINT "CENTRE" containing TL
  66 : C
  67 : C     IRVC    : CHPOINT "CENTRE" containing RV
  68 : C
  69 : C     IRLC    : CHPOINT "CENTRE" containing RL
  70 : C
  71 : C SORTIES
  72 : C
  73 : C     IALPF      : MCHAML defined en la MELEME of pointers
  74 : C                   IFACEL, it contains the void fraction
  75 : C                   (a gauche et a droite de chaque face).
  76 : C                   Only one component  ('SCAL')
  77 : C
  78 : C     IUVF        : MCHAML  "FACEL"  vapour velocity and the
  79 : C                   director cosines (n,t) in the corresponding face; 
  80 : C                   in the 2D case 6 composantes:
  81 : C                   'UVN' = normal velocity,
  82 : C                   'UVT' = tangent velocity, 
  83 : C                   'UVV' = tangent velocity,  
  84 : C                   these two velocities are defined in a local
  85 : C                   reference framework defined over the MELEME
  86 : C                   of pointers IFACE
  87 : C                   'NX' = n.x
  88 : C                   'NY' = n.y
  89 : C                   'TX' = t.x
  90 : C                   'TY' = t.y
  91 : C
  92 : C     IULF        : MCHAML  "FACEL"  liquid velocity
  93 : C                   in the 2D case 2 composantes:
  94 : C                   'ULN' = normal velocity,
  95 : C                   'ULT' = tangent velocity,
  96 : C     
  97 : C     IPF         : MCHAML "FACEL" pressure
  98 : C                   Only one component ('SCAL')
  99 : C
 100 : C     ITVF        : MCHAML "FACEL"  vapour temperature
 101 : C                   Only one component ('SCAL')
 102 : C
 103 : C     ITVL        : MCHAML "FACEL"  liquid temperature
 104 : C                   Only one component ('SCAL')
 105 : C
 106 : C     IRVF        : MCHAML "FACEL"  vapour density
 107 : C                   Only one component ('SCAL')
 108 : C
 109 : C     IRLF        : MCHAML "FACEL"  liquid temperature
 110 : C                   Only one component ('SCAL')
 111 : C      
 112 : C     LOGAN   : anomalie detectee (changement de la convention dans
 113 : C               la table domaine)
 114 : C
 115 : C     LOGNEG  : (LOGICAL): si .TRUE. une pression ou une densité
 116 : C               negative a été detectée -> en interactif le
 117 : C               programme s'arrete  en GIBIANE 
 118 : C               (erreur stocké en MESERR et VALER)
 119 : C
 120 : C     LOGBOR  : (LOGICAL): si .TRUE. un gamma a ete detecte
 121 : C               dehor 1 et 3 (sa valeur stockée en MESERR et VALER;
 122 : C               en VAL1 et en VAL2 on stocke 1.0 et 3.0)
 123 : C
 124 : C     MESERR
 125 : C     VALER
 126 : C     VAL1,
 127 : C     VAL2    : pour les messages d'erreur
 128 : C
 129 : C************************************************************************
 130 : C
 131 : C HISTORIQUE (Anomalies et modifications éventuelles)
 132 : C
 133 : C HISTORIQUE :  Créée le 11.6.98.(Adapted to two phase flow 26th
 134 : C                                 February 2002)
 135 : C 
 136 : C************************************************************************
 137 : C
 138 : C      
 139 : C ATTENTION: Cet programme marche que si le MAILLAGE est convex;
 140 : C            si non il faut changer l'argoritme de calcul de
 141 : C            l'orientation des normales aux faces.
 142 : C
 143 : C 
 144 : C************************************************************************
 145 : C
 146 : C**** Variables de COOPTIO
 147 : C
 148 :       INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
 149 :      &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
 150 :      &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
 151 :      &        ,IECHO,   IIMPI,  IOSPI
 152 :      &        ,IDIM, IFICLE , IPREFI  
 153 : C     &        ,MCOORD      
 154 :      &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
 155 :      &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
 156 :      &        ,NORINC,NORVAL,NORIND,NORVAD
 157 :      &        ,NUCROU, IPSAUV
 158 : C
 159 : C**** Les variables
 160 : C
 161 :       INTEGER ICEN, IFACE, IFACEL, 
 162 :      &         IALP, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC, INORM,
 163 :      &         IALPF, IUVF, IULF, IPF, ITVF, ITLF, IRVF, IRLF,
 164 :      &         IGEOM, NFAC,
 165 :      &         N1PTEL, N1EL, N2PTEL, N2EL, N2, N1, N3, L1,
 166 :      &         NLCF, NGCF, NGCEG, NLCEG, NGCED, NLCED, NGCF1
 167 :       REAL*8 VALER, VAL1, VAL2, XG, YG, XC, YC, DXG, DYG, 
 168 :      &       CNX, CNY, CTX, CTY, ORIENT,
 169 :      &       AG, UVXG, UVYG, UVNG, UVTG, ULXG, ULYG, ULNG, ULTG,
 170 :      &       PG, TVG, TLG, RVG, RLG, 
 171 :      &       AD, UVXD, UVYD, UVND, UVTD, ULXD, ULYD, ULND, ULTD, 
 172 :      &       PD, TVD, TLD, RVD, RLD 
 173 :       CHARACTER*(40) MESERR
 174 :       CHARACTER*(8) TYPE
 175 :       LOGICAL LOGAN,LOGNEG, LOGBOR
 176 : C
 177 : C**** Les Includes
 178 : C
 179 : -INC SMCOORD
 180 : -INC CCOPTIO
 181 : -INC SMCHPOI
 182 :       POINTEUR MPALP.MPOVAL, MPUVC.MPOVAL, MPULC.MPOVAL,
 183 :      &         MPPC.MPOVAL, MPTVC.MPOVAL, MPTLC.MPOVAL, 
 184 :      &         MPRVC.MPOVAL, MPRLC.MPOVAL, MPNORM.MPOVAL
 185 : -INC SMCHAML
 186 :       POINTEUR MLALP.MELVAL, MLP.MELVAL, 
 187 :      &         MLTV.MELVAL, MLTL.MELVAL, 
 188 :      &         MLRV.MELVAL, MLRL.MELVAL
 189 :       POINTEUR MLUVN.MELVAL, MLUVT.MELVAL, 
 190 :      &         MLULN.MELVAL, MLULT.MELVAL,
 191 :      &         MLVNX.MELVAL, MLVNY.MELVAL, MLVTX.MELVAL, MLVTY.MELVAL, 
 192 :      &         MLLNX.MELVAL, MLLNY.MELVAL, MLLTX.MELVAL, MLLTY.MELVAL
 193 : -INC SMLENTI
 194 : -INC SMELEME
 195 : C
 196 : C**** Initialisation des parametres d'erreur déjà faite, i.e.
 197 : C
 198 : C     LOGNEG  = .FALSE.
 199 : C     LOGBOR  = .FALSE.
 200 : C     MESERR = '                                        '
 201 : C     MOTERR(1:40) = MESERR(1:40)
 202 : C     VALER = 0.0D0
 203 : C     VAL1 = 0.0D0
 204 : C     VAL2 = 0.0D0
 205 : C
 206 : C
 207 : C**** KRIPAD pour la correspondance global/local de centre
 208 : C
 208 :       CALL KRIPAD(ICEN,MLENT1)
 209 : C
 210 : C
 211 : C**** MLENTI1 a MCORD.XCOORD(/1)/(IDIM+1) elements
 212 : C
 213 : C     Si i est le numero global d'un noeud de ICEN,
 214 : C     MLENT1.LECT(i) contient sa position, i.e.
 215 : C
 216 : C     I              = numero global du noeud centre      
 217 : C     MLENT1.LECT(i) = numero local du noeud centre
 218 : C
 219 : C     MLENT1 déjà activé, i.e.
 220 : C
 221 : C     SEGINI MLENTI1 
 222 : C
 223 : C**** Activation de CHPOINTs
 224 : C
 225 : C     void fraction
 226 : C     vapour velocities
 227 : C     liquid velocities
 228 : C     pressure
 229 : C     vapour temperature
 230 : C     liquid temperature
 231 : C     vapour density
 232 : C     liquid density
 233 : C     
 234 : C     cosinus directeurs des normales aux surface
 235 : C      
 235 :       CALL LICHT(IALP, MPALP, TYPE, IGEOM)
 235 :       CALL LICHT(IUVC, MPUVC, TYPE, IGEOM)
 235 :       CALL LICHT(IULC, MPULC, TYPE, IGEOM)
 235 :       CALL LICHT(IPC , MPPC , TYPE, IGEOM)
 235 :       CALL LICHT(ITVC, MPTVC, TYPE, IGEOM)
 235 :       CALL LICHT(ITLC, MPTLC, TYPE, IGEOM)
 235 :       CALL LICHT(IRVC, MPRVC, TYPE, IGEOM)
 235 :       CALL LICHT(IRLC, MPRLC, TYPE, IGEOM)
 235 :       CALL LICHT(INORM, MPNORM, TYPE, IGEOM)
 236 : C
 237 : C     SEGACT MPALP
 238 : C     SEGACT MPUVC
 239 : C     SEGACT MPULC
 240 : C     SEGACT MPPC
 241 : C     SEGACT MPTVC
 242 : C     SEGACT MPTLC
 243 : C     SEGACT MPRVC
 244 : C     SEGACT MPRLC
 245 : C     SEGACT MPNORM
 246 : C
 247 : C**** MPOVA1 - MPOVA5 sont déjà activés i.e.:
 248 : C     
 249 : C**** Le MELEME FACEL
 250 : C
 251 :       IPT1 = IFACEL
 252 :       IPT2 = IFACE
 253 :       SEGACT IPT1
 254 :       SEGACT IPT2
 255 :       NFAC = IPT1.NUM(/2)
 256 : C      
 257 : C**** Creation de MCHAMLs contenant les etats gauche et droite,
 258 : C
 259 : C     i.e.:
 260 : C       
 261 : C     vitesse + cosinus directors du repere local      
 262 : C     densité
 263 : C     pression
 264 : C     gamma
 265 : 
 266 : C
 267 : C**** Cosinus directors du repere local et vitesse
 268 : C      
 269 : C     Les cosinus directeurs
 270 : C
 271 : C     VAPOUR PHASE
 272 : 
 273 :       N1 = 2
 274 :       N3 = 6
 275 :       L1 = 28
 276 :       SEGINI MCHEL1
 277 :       IUVF = MCHEL1
 278 :       MCHEL1.TITCHE = 'UV '
 279 :       MCHEL1.IMACHE(1) = IFACE
 280 :       MCHEL1.IMACHE(2) = IFACEL
 281 :       MCHEL1.CONCHE(1) = ' (n,t) in (x,y) '
 282 :       MCHEL1.CONCHE(2) = ' UV in (n,t)    '
 283 : C
 284 : C**** Valeurs des cosinus definies par respect au repair global, i.e.
 285 : C      
 286 :       MCHEL1.INFCHE(1,1) = 2
 287 :       MCHEL1.INFCHE(1,3) = NIFOUR
 288 :       MCHEL1.INFCHE(1,4) = 0
 289 :       MCHEL1.INFCHE(1,5) = 0
 290 :       MCHEL1.INFCHE(1,6) = 0
 291 :       MCHEL1.IFOCHE = IFOUR
 292 : C
 293 : C**** Valeurs de vitesse definies par respect au repair local, i.e.
 294 : C      
 295 :       MCHEL1.INFCHE(2,1) = 1
 296 :       MCHEL1.INFCHE(2,3) = NIFOUR
 297 :       MCHEL1.INFCHE(2,4) = 0
 298 :       MCHEL1.INFCHE(2,5) = 0
 299 :       MCHEL1.INFCHE(2,6) = 0
 300 : C
 301 : C**** Le cosinus directeurs
 302 : C
 303 :       N1PTEL = 1
 304 :       N1EL = NFAC
 305 :       N2PTEL = 0
 306 :       N2EL =   0
 307 : C
 308 : C**** MCHAML a N2 composantes:
 309 : C      
 310 : C     cosinus directeurs du repere local (n,t1)
 311 : C
 312 : C     IDIM = 2 -> 4 composantes
 313 : C
 314 :       N2 = 4
 315 :       SEGINI MCHAM1
 316 :       MCHEL1.ICHAML(1) = MCHAM1
 317 :       MCHAM1.NOMCHE(1) = 'NVX     '
 318 :       MCHAM1.NOMCHE(2) = 'NVY     '
 319 :       MCHAM1.NOMCHE(3) = 'TVX     '
 320 :       MCHAM1.NOMCHE(4) = 'TVY     '
 321 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 322 :       MCHAM1.TYPCHE(2) = 'REAL*8          '
 323 :       MCHAM1.TYPCHE(3) = 'REAL*8          '
 324 :       MCHAM1.TYPCHE(4) = 'REAL*8          '
 325 :       SEGINI MLVNX
 326 :       SEGINI MLVNY
 327 :       SEGINI MLVTX
 328 :       SEGINI MLVTY
 329 :       MCHAM1.IELVAL(1) = MLVNX
 330 :       MCHAM1.IELVAL(2) = MLVNY
 331 :       MCHAM1.IELVAL(3) = MLVTX
 332 :       MCHAM1.IELVAL(4) = MLVTY
 333 :       SEGDES MCHAM1         
 334 : C
 335 : C**** Vitesse
 336 : C
 337 :       N1EL = NFAC
 338 :       N1PTEL = 3
 339 :       N2EL = 0
 340 :       N2PTEL = 0      
 341 : C
 342 : C**** MCHAML a N2 composantes:
 343 : C      
 344 : C     IDIM = 2 -> 2 composantes
 345 : C
 346 :       N2 = 2
 347 :       SEGINI MCHAM1
 348 :       MCHEL1.ICHAML(2) = MCHAM1
 349 :       SEGDES MCHEL1
 350 :       MCHAM1.NOMCHE(1) = 'UVN     '
 351 :       MCHAM1.NOMCHE(2) = 'UVT     '
 352 :       MCHAM1.TYPCHE(1) = 'REAL*8         '
 353 :       MCHAM1.TYPCHE(2) = 'REAL*8         '
 354 :       SEGINI MLUVN
 355 :       SEGINI MLUVT
 356 :       MCHAM1.IELVAL(1) = MLUVN
 357 :       MCHAM1.IELVAL(2) = MLUVT
 358 :       SEGDES MCHAM1
 359 : C 
 360 : C**** Cosinus directors du repere local et vitesse
 361 : C      
 362 : C     Les cosinus directeurs
 363 : C
 364 : C     LIQUID PHASE
 365 : 
 366 :       N1 = 2
 367 :       N3 = 6
 368 :       L1 = 28
 369 :       SEGINI MCHEL1
 370 :       IULF = MCHEL1
 371 :       MCHEL1.TITCHE = 'UL '
 372 :       MCHEL1.IMACHE(1) = IFACE
 373 :       MCHEL1.IMACHE(2) = IFACEL
 374 :       MCHEL1.CONCHE(1) = ' (n,t) in (x,y) '
 375 :       MCHEL1.CONCHE(2) = ' UL in (n,t)    '
 376 : C
 377 : C**** Valeurs des cosinus definies par respect au repair global, i.e.
 378 : C      
 379 :       MCHEL1.INFCHE(1,1) = 2
 380 :       MCHEL1.INFCHE(1,3) = NIFOUR
 381 :       MCHEL1.INFCHE(1,4) = 0
 382 :       MCHEL1.INFCHE(1,5) = 0
 383 :       MCHEL1.INFCHE(1,6) = 0
 384 :       MCHEL1.IFOCHE = IFOUR
 385 : C
 386 : C**** Valeurs de vitesse definies par respect au repair local, i.e.
 387 : C      
 388 :       MCHEL1.INFCHE(2,1) = 1
 389 :       MCHEL1.INFCHE(2,3) = NIFOUR
 390 :       MCHEL1.INFCHE(2,4) = 0
 391 :       MCHEL1.INFCHE(2,5) = 0
 392 :       MCHEL1.INFCHE(2,6) = 0
 393 : C
 394 : C**** Le cosinus directeurs
 395 : C
 396 :       N1PTEL = 1
 397 :       N1EL = NFAC
 398 :       N2PTEL = 0
 399 :       N2EL =   0
 400 : C
 401 : C**** MCHAML a N2 composantes:
 402 : C      
 403 : C     cosinus directeurs du repere local (n,t1)
 404 : C
 405 : C     IDIM = 2 -> 4 composantes
 406 : C
 407 :       N2 = 4
 408 :       SEGINI MCHAM1
 409 :       MCHEL1.ICHAML(1) = MCHAM1
 410 :       MCHAM1.NOMCHE(1) = 'NLX     '
 411 :       MCHAM1.NOMCHE(2) = 'NLY     '
 412 :       MCHAM1.NOMCHE(3) = 'TLX     '
 413 :       MCHAM1.NOMCHE(4) = 'TLY     '
 414 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 415 :       MCHAM1.TYPCHE(2) = 'REAL*8          '
 416 :       MCHAM1.TYPCHE(3) = 'REAL*8          '
 417 :       MCHAM1.TYPCHE(4) = 'REAL*8          '
 418 :       SEGINI MLLNX
 419 :       SEGINI MLLNY
 420 :       SEGINI MLLTX
 421 :       SEGINI MLLTY
 422 :       MCHAM1.IELVAL(1) = MLLNX
 423 :       MCHAM1.IELVAL(2) = MLLNY
 424 :       MCHAM1.IELVAL(3) = MLLTX
 425 :       MCHAM1.IELVAL(4) = MLLTY
 426 :       SEGDES MCHAM1         
 427 : C
 428 : C**** Vitesse
 429 : C
 430 :       N1EL = NFAC
 431 :       N1PTEL = 3
 432 :       N2EL = 0
 433 :       N2PTEL = 0      
 434 : C
 435 : C**** MCHAML a N2 composantes:
 436 : C      
 437 : C     IDIM = 2 -> 2 composantes
 438 : C
 439 :       N2 = 2
 440 :       SEGINI MCHAM1
 441 :       MCHEL1.ICHAML(2) = MCHAM1
 442 :       SEGDES MCHEL1
 443 :       MCHAM1.NOMCHE(1) = 'ULN     '
 444 :       MCHAM1.NOMCHE(2) = 'ULT     '
 445 :       MCHAM1.TYPCHE(1) = 'REAL*8         '
 446 :       MCHAM1.TYPCHE(2) = 'REAL*8         '
 447 :       SEGINI MLULN
 448 :       SEGINI MLULT
 449 :       MCHAM1.IELVAL(1) = MLULN
 450 :       MCHAM1.IELVAL(2) = MLULT
 451 :       SEGDES MCHAM1
 452 : C
 453 : C**** Void fraction
 454 : C
 455 :       N1 = 1
 456 :       N3 = 6
 457 :       L1 = 15
 458 :       SEGINI MCHEL2
 459 :       IALPF = MCHEL2
 460 :       MCHEL2.IMACHE(1) = IFACEL
 461 :       MCHEL2.TITCHE = 'ALPHA           '
 462 :       MCHEL2.CONCHE(1) = '                '
 463 : C
 464 : C**** Valeurs independente du repére, i.e.
 465 : C      
 466 :       MCHEL2.INFCHE(1,1) = 0
 467 :       MCHEL2.INFCHE(1,3) = NIFOUR
 468 :       MCHEL2.INFCHE(1,4) = 0
 469 :       MCHEL2.INFCHE(1,5) = 0
 470 :       MCHEL2.INFCHE(1,6) = 0
 471 :       MCHEL2.IFOCHE = IFOUR
 472 :       N2 = 1
 473 :       SEGINI MCHAM1
 474 :       MCHEL2.ICHAML(1) = MCHAM1
 475 :       SEGDES MCHEL2
 476 :       MCHAM1.NOMCHE(1) = 'SCAL    '
 477 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 478 :       SEGINI MLALP
 479 :       MCHAM1.IELVAL(1) = MLALP
 480 :       SEGDES MCHAM1
 481 : C
 482 : C**** Pressure
 483 : C
 484 :       MCHEL1 = IALPF
 485 :       SEGINI, MCHEL2 = MCHEL1
 486 :       IPF = MCHEL2
 487 :       MCHEL2.TITCHE = 'P            '
 488 : C
 489 : C**** MCHAM1 = MCHAML de la alpha
 490 : C
 491 :       SEGINI, MCHAM2 = MCHAM1
 492 :       MCHEL2.ICHAML(1) = MCHAM2
 493 :       SEGDES MCHEL2
 494 :       SEGINI MLP
 495 :       MCHAM2.IELVAL(1) = MLP
 496 :       SEGDES MCHAM2
 497 : C
 498 : C**** Vapour temperature
 499 : C
 500 :       MCHEL1 = IALPF
 501 :       SEGINI, MCHEL2 = MCHEL1
 502 :       ITVF = MCHEL2
 503 :       MCHEL2.TITCHE = 'TV             '
 504 : C
 505 : C**** MCHAM1 = MCHAML de la alpha
 506 : C
 507 :       SEGINI, MCHAM2 = MCHAM1
 508 :       MCHEL2.ICHAML(1) = MCHAM2
 509 :       SEGDES MCHEL2
 510 :       SEGINI MLTV
 511 :       MCHAM2.IELVAL(1) = MLTV
 512 :       SEGDES MCHAM2
 513 : C
 514 : C**** Liquid temperature
 515 : C
 516 :       MCHEL1 = IALPF
 517 :       SEGINI, MCHEL2 = MCHEL1
 518 :       ITLF = MCHEL2
 519 :       MCHEL2.TITCHE = 'TL             '
 520 : C
 521 : C**** MCHAM1 = MCHAML de la alpha
 522 : C
 523 :       SEGINI, MCHAM2 = MCHAM1
 524 :       MCHEL2.ICHAML(1) = MCHAM2
 525 :       SEGDES MCHEL2
 526 :       SEGINI MLTL
 527 :       MCHAM2.IELVAL(1) = MLTL
 528 :       SEGDES MCHAM2
 529 : C
 530 : C**** Vapour density
 531 : C
 532 :       MCHEL1 = IALPF
 533 :       SEGINI, MCHEL2 = MCHEL1
 534 :       IRVF = MCHEL2
 535 :       MCHEL2.TITCHE = 'RV             '
 536 : C
 537 : C**** MCHAM1 = MCHAML de la alpha
 538 : C
 539 :       SEGINI, MCHAM2 = MCHAM1
 540 :       MCHEL2.ICHAML(1) = MCHAM2
 541 :       SEGDES MCHEL2
 542 :       SEGINI MLRV
 543 :       MCHAM2.IELVAL(1) = MLRV
 544 :       SEGDES MCHAM2
 545 : C
 546 : C**** Liquid density
 547 : C
 548 :       MCHEL1 = IALPF
 549 :       SEGINI, MCHEL2 = MCHEL1
 550 :       IRLF = MCHEL2
 551 :       MCHEL2.TITCHE = 'RL             '
 552 : C
 553 : C**** MCHAM1 = MCHAML de la alpha
 554 : C
 555 :       SEGINI, MCHAM2 = MCHAM1
 556 :       MCHEL2.ICHAML(1) = MCHAM2
 557 :       SEGDES MCHEL2
 558 :       SEGINI MLRL
 559 :       MCHAM2.IELVAL(1) = MLRL
 560 :       SEGDES MCHAM2
 561 : 
 562 : C
 563 : C**** Recapitulatif: les MELVALs et les MPOVALs actives
 564 : C
 565 : C     MLVNX, MLVNY, 
 566 : C     MLVTX, MLVTY, 
 567 : C
 568 : C     MLLNX, MLLNY,
 569 : C     MLLTX, MLLTY
 570 : C
 571 : C     MLUVN, MLUVT -> vapour velocities
 572 : C
 573 : C     MLULN, MLULT -> liquid velocities
 574 : C
 575 : C     MLALP  -> void fraction
 576 : C
 577 : C     MLP     -> pressure
 578 : C
 579 : C     MLTV    -> vapour temperature
 580 : C
 581 : C     MLTL    -> liquid temperature
 582 : C
 583 : C     MLRV    -> vapour density
 584 : C
 585 : C     MLRL    -> liquid density
 586 : C****
 587 : C     MPALP   -> void fraction
 588 : C
 589 : C     MPUVC   -> vapour velocity
 590 : C
 591 : C     MPULC   -> liquid velocity
 592 : C
 593 : C     MPPC    -> pressure
 594 : C
 595 : C     MPTVC   -> vapour temperature
 596 : C
 597 : C     MPTLC   -> liquid temperature
 598 : C
 599 : C     MPRVC   -> vapour density
 600 : C
 601 : C     MPRLC   -> liquid density
 602 : C
 603 : C     MPNORM  -> normales aux faces
 604 : C
 605 : C**** Boucle sur le faces
 606 : C     
 607 :       DO NLCF = 1, NFAC
 608 : C
 609 : C******* NLCF  = numero local du centre de face
 610 : C        NGCF  = numero global du centre de face
 611 : C        NGCEG = numero global du centre ELT "gauche"
 612 : C        NLCEG = numero local du centre ELT "gauche"
 613 : C        NGCED = numero global du centre ELT "droite"
 614 : C        NLCED = numero local du centre ELT "droite"
 615 : C
 616 :          NGCEG = IPT1.NUM(1,NLCF)
 617 :          NGCF  = IPT1.NUM(2,NLCF)
 618 :          NGCED = IPT1.NUM(3,NLCF)
 619 :          NLCEG = MLENT1.LECT(NGCEG)
 620 :          NLCED = MLENT1.LECT(NGCED)
 621 : C
 622 : C******* TEST: IPT2.NUM(1,NLCF) = IPT1.NUM(2,NLCF)
 623 : C
 624 :          NGCF1 = IPT2.NUM(1,NLCF)
 625 :          IF( NGCF1 .NE. NGCF) THEN
 626 :             LOGAN = .TRUE.
 627 :             MESERR(1:40) = 'PRET, subroutine pre111.eso             ' 
 628 :             GOTO 9999
 629 :          ENDIF
 630 : C
 631 : C******* Cosinus directeurs des NORMALES aux faces
 632 : C
 633 : C        On impose que les normales sont direct "Gauche" -> "Centre"
 634 : C
 635 :          XG = XCOOR((NGCEG-1)*(IDIM+1)+1)
 636 :          YG = XCOOR((NGCEG-1)*(IDIM+1)+2)
 637 :          XC = XCOOR((NGCF-1)*(IDIM+1)+1)
 638 :          YC = XCOOR((NGCF-1)*(IDIM+1)+2)
 639 :          DXG = XC - XG
 640 :          DYG = YC - YG
 641 :             
 642 : C
 643 : C******* On calcule le sign du pruduit scalare 
 644 : C        (Normales de Castem) * (vecteur "gauche" -> "centre")
 645 : C
 646 :          CNX = MPNORM.VPOCHA(NLCF,1)
 647 :          CNY = MPNORM.VPOCHA(NLCF,2)
 648 :          ORIENT = CNX * DXG + CNY * DYG
 649 :          ORIENT = SIGN(1.0D0,ORIENT)
 650 :          IF(ORIENT .NE. 1.0D0)THEN
 651 :             LOGAN = .TRUE. 
 652 :             MESERR(1:30)=
 653 :      &           'PRET , subroutine pre111.eso. '               
 654 :             GOTO 9999
 655 :          ENDIF
 656 :          CNX = CNX * ORIENT
 657 :          CNY = CNY * ORIENT
 658 : C
 659 : C********** Cosinus directeurs de tangent 2D
 660 : C
 661 :          CTX = -1.0D0 * CNY
 662 :          CTY = CNX
 663 : C
 664 : C
 665 : C******* Les autres MELVALs
 666 : C
 667 : C
 668 : C******* N.B.: On suppose qu'on a déjà controlle RO, P > 0
 669 : C              GAMMA \in (1,3)
 670 : C              Si non il faut le faire, en utlisant LOGBOR, 
 671 : C              LOGNEG, VALER, VAL1, VAL2
 672 : C
 673 : C
 674 : C
 675 : C******* NGCEG = NGCED -> Mur
 676 : C
 677 : 
 678 :          IF( NGCEG .EQ. NGCED)THEN
 679 :             AG   = MPALP.VPOCHA(NLCEG, 1)
 680 :             PG   = MPPC.VPOCHA(NLCEG, 1)
 681 :             TVG  = MPTVC.VPOCHA(NLCEG, 1)
 682 :             TLG  = MPTLC.VPOCHA(NLCEG, 1)
 683 :             RVG  = MPRVC.VPOCHA(NLCEG, 1)            
 684 :             RLG  = MPRLC.VPOCHA(NLCEG, 1)
 685 :             UVXG = MPUVC.VPOCHA(NLCEG, 1)
 686 :             UVYG = MPUVC.VPOCHA(NLCEG, 2)               
 687 :             ULXG = MPULC.VPOCHA(NLCEG, 1)
 688 :             ULYG = MPULC.VPOCHA(NLCEG, 2)
 689 :             UVNG = UVXG * CNX + UVYG * CNY
 690 :             UVTG = UVXG * CTX + UVYG * CTY
 691 :             ULNG = ULXG * CNX + ULYG * CNY
 692 :             ULTG = ULXG * CTX + ULYG * CTY
 693 : C              
 694 : C********** Son etat droite
 695 : C
 696 :             AD  = AG
 697 :             PD  = PG
 698 :             TVD = TVG
 699 :             TLD = TLG
 700 :             RVD = RVG
 701 :             RLD = RLG
 702 :             UVND = -1.0D0 * UVNG
 703 :             UVTD = UVTG
 704 :             ULND = -1.0D0 * ULNG
 705 :             ULTD = ULTG
 706 : C     
 707 : C************* Fin cas mur
 708 : C
 709 :          ELSE
 710 : C
 711 : C************* Etat gauche
 712 : C
 713 :             AG   = MPALP.VPOCHA(NLCEG, 1)
 714 :             PG   = MPPC.VPOCHA(NLCEG, 1)
 715 :             TVG  = MPTVC.VPOCHA(NLCEG, 1)
 716 :             TLG  = MPTLC.VPOCHA(NLCEG, 1)
 717 :             RVG  = MPRVC.VPOCHA(NLCEG, 1)            
 718 :             RLG  = MPRLC.VPOCHA(NLCEG, 1)
 719 :             UVXG = MPUVC.VPOCHA(NLCEG, 1)
 720 :             UVYG = MPUVC.VPOCHA(NLCEG, 2)               
 721 :             ULXG = MPULC.VPOCHA(NLCEG, 1)
 722 :             ULYG = MPULC.VPOCHA(NLCEG, 2)
 723 :             UVNG = UVXG * CNX + UVYG * CNY
 724 :             UVTG = UVXG * CTX + UVYG * CTY
 725 :             ULNG = ULXG * CNX + ULYG * CNY
 726 :             ULTG = ULXG * CTX + ULYG * CTY
 727 : C
 728 : C********** Etat gauche
 729 : C
 730 :             AD   = MPALP.VPOCHA(NLCED, 1)
 731 :             PD   = MPPC.VPOCHA(NLCED, 1)
 732 :             TVD  = MPTVC.VPOCHA(NLCED, 1)
 733 :             TLD  = MPTLC.VPOCHA(NLCED, 1)
 734 :             RVD  = MPRVC.VPOCHA(NLCED, 1)            
 735 :             RLD  = MPRLC.VPOCHA(NLCED, 1)
 736 :             UVXD = MPUVC.VPOCHA(NLCED, 1)
 737 :             UVYD = MPUVC.VPOCHA(NLCED, 2)               
 738 :             ULXD = MPULC.VPOCHA(NLCED, 1)
 739 :             ULYD = MPULC.VPOCHA(NLCED, 2)
 740 :             UVND = UVXD * CNX + UVYD * CNY
 741 :             UVTD = UVXD * CTX + UVYD * CTY
 742 :             ULND = ULXD * CNX + ULYD * CNY
 743 :             ULTD = ULXD * CTX + ULYD * CTY
 744 :          ENDIF
 745 : C
 746 : C************* Les MELVALs
 747 : C
 748 :          MLALP.VELCHE(1,NLCF) = AG
 749 :          MLALP.VELCHE(3,NLCF) = AD
 750 :          MLP.VELCHE(1,NLCF)  = PG
 751 :          MLP.VELCHE(3,NLCF)  = PD
 752 :          MLTV.VELCHE(1,NLCF) = TVG
 753 :          MLTV.VELCHE(3,NLCF) = TVD
 754 :          MLTL.VELCHE(1,NLCF) = TLG
 755 :          MLTL.VELCHE(3,NLCF) = TLD
 756 :          MLRV.VELCHE(1,NLCF) = RVG
 757 :          MLRV.VELCHE(3,NLCF) = RVD
 758 :          MLRL.VELCHE(1,NLCF) = RLG
 759 :          MLRL.VELCHE(3,NLCF) = RLD
 760 : 
 761 :          MLUVN.VELCHE(1,NLCF) = UVNG
 762 :          MLUVN.VELCHE(3,NLCF) = UVND
 763 :          MLUVT.VELCHE(1,NLCF) = UVTG
 764 :          MLUVT.VELCHE(3,NLCF) = UVTD
 765 :          MLULN.VELCHE(1,NLCF) = ULNG
 766 :          MLULN.VELCHE(3,NLCF) = ULND
 767 :          MLULT.VELCHE(1,NLCF) = ULTG
 768 :          MLULT.VELCHE(3,NLCF) = ULTD
 769 : 
 770 : C LAS QUE VIENEN A CONTINUACION NO SIRVEN, TENEMOS LAS 
 771 : C MISMAS DIRECCIONES TANTO PARA LA FASE LIQUIDA COMO PARA
 772 : C LA GASEOSA
 773 : 
 774 :          MLVNX.VELCHE(1,NLCF) = CNX
 775 :          MLVNY.VELCHE(1,NLCF) = CNY
 776 :          MLVTX.VELCHE(1,NLCF) = CTX
 777 :          MLVTY.VELCHE(1,NLCF) = CTY
 778 : 
 779 :          MLLNX.VELCHE(1,NLCF) = CNX
 780 :          MLLNY.VELCHE(1,NLCF) = CNY
 781 :          MLLTX.VELCHE(1,NLCF) = CTX
 782 :          MLLTY.VELCHE(1,NLCF) = CTY
 783 : 
 784 :       ENDDO            
 785 : C
 786 : C**** Desactivation des SEGMENTs
 787 : C
 788 :       SEGDES IPT1
 789 :       SEGDES IPT2
 790 : C
 791 :       SEGDES MPALP
 792 :       SEGDES MPUVC
 793 :       SEGDES MPULC
 794 :       SEGDES MPPC
 795 :       SEGDES MPTVC
 796 :       SEGDES MPTLC
 797 :       SEGDES MPRVC
 798 :       SEGDES MPRLC
 799 :       SEGDES MPNORM
 800 : C
 801 :       SEGDES MLALP
 802 :       SEGDES MLP
 803 :       SEGDES MLTV
 804 :       SEGDES MLTL
 805 :       SEGDES MLRV
 806 :       SEGDES MLRL
 807 : 
 808 : C liquid vectors same as vapour ones, 
 809 : C there should have been only one set
 810 : 
 811 :       SEGDES MLUVN
 812 :       SEGDES MLUVT
 813 :       SEGDES MLULN
 814 :       SEGDES MLULT
 815 : 
 816 :       SEGDES MLVNX
 817 :       SEGDES MLVNY
 818 :       SEGDES MLVTX
 819 :       SEGDES MLVTY
 820 :       SEGDES MLLNX
 821 :       SEGDES MLLNY
 822 :       SEGDES MLLTX
 823 :       SEGDES MLLTY
 824 : C
 825 : C**** Destruction du MELNTI correspondance local/global
 826 : C
 827 :       SEGSUP MLENT1
 828 : C
 829 :  9999 CONTINUE
 830 : C      
 831 :       RETURN                                                                    
 832 :       END
 833 : 
 834 : 
 835 : 
 836 :  
 837 :  
 838 :  

© Cast3M 2003 - All rights reserved.
Disclaimer