Download pre32f.eso

Back to the list

   1 : C PRE32F    SOURCE    PV        09/03/12    21:31:05     6325           
   2 :       SUBROUTINE PRE32F(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               :  PRE32F
  12 : C
  13 : C DESCRIPTION       :  Voir PRE12F
  14 : C
  15 : C                      Three 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 & UVZ
  58 : C
  59 : C     IULC    : CHPOINT "CENTRE" containing ULX, UVY & ULZ
  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                   'T1X' = t1.x
  90 : C                   'T1Y' = t1.y
  91 : C                   'T2X' = t2.x
  92 : C                   'T2Y' = t2.y
  93 : C
  94 : C     IULF        : MCHAML  "FACEL"  liquid velocity
  95 : C                   in the 2D case 2 composantes:
  96 : C                   'ULN' = normal velocity
  97 : C                   'ULT' = tangent velocity
  98 : C                   'ULV' = tangent velocity
  99 : C     
 100 : C     IPF         : MCHAML "FACEL" pressure
 101 : C                   Only one component ('SCAL')
 102 : C
 103 : C     ITVF        : MCHAML "FACEL"  vapour temperature
 104 : C                   Only one component ('SCAL')
 105 : C
 106 : C     ITVL        : MCHAML "FACEL"  liquid temperature
 107 : C                   Only one component ('SCAL')
 108 : C
 109 : C     IRVF        : MCHAML "FACEL"  vapour density
 110 : C                   Only one component ('SCAL')
 111 : C
 112 : C     IRLF        : MCHAML "FACEL"  liquid density
 113 : C                   Only one component ('SCAL')
 114 : C      
 115 : C     LOGAN   : anomalie detectee (changement de la convention dans
 116 : C               la table domaine)
 117 : C
 118 : C     LOGNEG  : (LOGICAL): si .TRUE. une pression ou une densité
 119 : C               negative a été detectée -> en interactif le
 120 : C               programme s'arrete  en GIBIANE 
 121 : C               (erreur stocké en MESERR et VALER)
 122 : C
 123 : C     LOGBOR  : (LOGICAL): si .TRUE. un gamma a ete detecte
 124 : C               dehor 1 et 3 (sa valeur stockée en MESERR et VALER;
 125 : C               en VAL1 et en VAL2 on stocke 1.0 et 3.0)
 126 : C
 127 : C     MESERR
 128 : C     VALER
 129 : C     VAL1,
 130 : C     VAL2    : pour les messages d'erreur
 131 : C
 132 : C************************************************************************
 133 : C
 134 : C HISTORIQUE (Anomalies et modifications éventuelles)
 135 : C
 136 : C HISTORIQUE :  Créée le 11.6.98.(Adapted to two phase flow 26th
 137 : C                                 February 2002)
 138 : C 
 139 : C************************************************************************
 140 : C
 141 : C      
 142 : C ATTENTION: Cet programme marche que si le MAILLAGE est convex;
 143 : C            si non il faut changer l'argoritme de calcul de
 144 : C            l'orientation des normales aux faces.
 145 : C
 146 : C 
 147 : C************************************************************************
 148 : C
 149 : C**** Variables de COOPTIO
 150 : C
 151 :       INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
 152 :      &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
 153 :      &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
 154 :      &        ,IECHO,   IIMPI,  IOSPI
 155 :      &        ,IDIM, IFICLE , IPREFI  
 156 : C     &        ,MCOORD      
 157 :      &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
 158 :      &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
 159 :      &        ,NORINC,NORVAL,NORIND,NORVAD
 160 :      &        ,NUCROU, IPSAUV
 161 : C
 162 : C**** Les variables
 163 : C
 164 :       INTEGER ICEN, IFACE, IFACEL, 
 165 :      &         IALP, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC, INORM,
 166 :      &         IALPF, IUVF, IULF, IPF, ITVF, ITLF, IRVF, IRLF,
 167 :      &         IGEOM, NFAC,
 168 :      &         N1PTEL, N1EL, N2PTEL, N2EL, N2, N1, N3, L1,
 169 :      &         NLCF, NGCF, NGCEG, NLCEG, NGCED, NLCED, NGCF1
 170 :       REAL*8 VALER, VAL1, VAL2, XG, YG, ZG, XC, YC, ZC, DXG, DYG, DZG, 
 171 :      &       CNX, CNY, CNZ, CTX, CTY, CTZ, CVX, CVY, CVZ, ORIENT,
 172 :      &       AG, UVXG, UVYG, UVZG, UVNG, UVTG, UVVG, 
 173 :      &           ULXG, ULYG, ULZG, ULNG, ULTG, ULVG,
 174 :      &       PG, TVG, TLG, RVG, RLG, 
 175 :      &       AD, UVXD, UVYD, UVZD, UVND, UVTD, UVVD, 
 176 :      &           ULXD, ULYD, ULZD, ULND, ULTD, ULVD, 
 177 :      &       PD, TVD, TLD, RVD, RLD 
 178 :       CHARACTER*(40) MESERR
 179 :       CHARACTER*(8) TYPE
 180 :       LOGICAL LOGAN,LOGNEG, LOGBOR
 181 : C
 182 : C**** Les Includes
 183 : C
 184 : -INC SMCOORD
 185 : -INC CCOPTIO
 186 : -INC SMCHPOI
 187 :       POINTEUR MPALP.MPOVAL, MPUVC.MPOVAL, MPULC.MPOVAL,
 188 :      &         MPPC.MPOVAL,  MPTVC.MPOVAL, MPTLC.MPOVAL, 
 189 :      &         MPRVC.MPOVAL, MPRLC.MPOVAL, MPNORM.MPOVAL
 190 : -INC SMCHAML
 191 :       POINTEUR MLALP.MELVAL, MLP.MELVAL, 
 192 :      &         MLTV.MELVAL,  MLTL.MELVAL, 
 193 :      &         MLRV.MELVAL,  MLRL.MELVAL
 194 :       POINTEUR MLUVN.MELVAL,  MLUVT.MELVAL,  MLUVV.MELVAL, 
 195 :      &         MLULN.MELVAL,  MLULT.MELVAL,  MLULV.MELVAL,
 196 :      &         MLVNX.MELVAL,  MLVNY.MELVAL,  MLVNZ.MELVAL, 
 197 :      &         MLVT1X.MELVAL, MLVT1Y.MELVAL, MLVT1Z.MELVAL, 
 198 :      &         MLVT2X.MELVAL, MLVT2Y.MELVAL, MLVT2Z.MELVAL, 
 199 :      &         MLLNX.MELVAL,  MLLNY.MELVAL,  MLLNZ.MELVAL, 
 200 :      &         MLLT1X.MELVAL, MLLT1Y.MELVAL, MLLT1Z.MELVAL,
 201 :      &         MLLT2X.MELVAL, MLLT2Y.MELVAL, MLLT2Z.MELVAL
 202 : -INC SMLENTI
 203 : -INC SMELEME
 204 : C
 205 : C**** Initialisation des parametres d'erreur déjà faite, i.e.
 206 : C
 207 : C     LOGNEG  = .FALSE.
 208 : C     LOGBOR  = .FALSE.
 209 : C     MESERR = '                                        '
 210 : C     MOTERR(1:40) = MESERR(1:40)
 211 : C     VALER = 0.0D0
 212 : C     VAL1 = 0.0D0
 213 : C     VAL2 = 0.0D0
 214 : C
 215 : C
 216 : C**** KRIPAD pour la correspondance global/local de centre
 217 : C
 217 :       CALL KRIPAD(ICEN,MLENT1)
 218 : C
 219 : C
 220 : C**** MLENTI1 a MCORD.XCOORD(/1)/(IDIM+1) elements
 221 : C
 222 : C     Si i est le numero global d'un noeud de ICEN,
 223 : C     MLENT1.LECT(i) contient sa position, i.e.
 224 : C
 225 : C     I              = numero global du noeud centre      
 226 : C     MLENT1.LECT(i) = numero local du noeud centre
 227 : C
 228 : C     MLENT1 déjà activé, i.e.
 229 : C
 230 : C     SEGINI MLENTI1 
 231 : C
 232 : C**** Activation de CHPOINTs
 233 : C
 234 : C     void fraction
 235 : C     vapour velocities
 236 : C     liquid velocities
 237 : C     pressure
 238 : C     vapour temperature
 239 : C     liquid temperature
 240 : C     vapour density
 241 : C     liquid density
 242 : C     
 243 : C     cosinus directeurs des normales aux surface
 244 : C      
 244 :       CALL LICHT(IALP, MPALP, TYPE, IGEOM)
 244 :       CALL LICHT(IUVC, MPUVC, TYPE, IGEOM)
 244 :       CALL LICHT(IULC, MPULC, TYPE, IGEOM)
 244 :       CALL LICHT(IPC , MPPC , TYPE, IGEOM)
 244 :       CALL LICHT(ITVC, MPTVC, TYPE, IGEOM)
 244 :       CALL LICHT(ITLC, MPTLC, TYPE, IGEOM)
 244 :       CALL LICHT(IRVC, MPRVC, TYPE, IGEOM)
 244 :       CALL LICHT(IRLC, MPRLC, TYPE, IGEOM)
 244 :       CALL LICHT(INORM, MPNORM, TYPE, IGEOM)
 245 : C
 246 : C     SEGACT MPALP
 247 : C     SEGACT MPUVC
 248 : C     SEGACT MPULC
 249 : C     SEGACT MPPC
 250 : C     SEGACT MPTVC
 251 : C     SEGACT MPTLC
 252 : C     SEGACT MPRVC
 253 : C     SEGACT MPRLC
 254 : C     SEGACT MPNORM
 255 : C
 256 : C**** MPOVA1 - MPOVA5 sont déjà activés i.e.:
 257 : C     
 258 : C**** Le MELEME FACEL
 259 : C
 260 :       IPT1 = IFACEL
 261 :       IPT2 = IFACE
 262 :       SEGACT IPT1
 263 :       SEGACT IPT2
 264 :       NFAC = IPT1.NUM(/2)
 265 : C      
 266 : C**** Creation de MCHAMLs contenant les etats gauche et droite,
 267 : C
 268 : C     i.e.:
 269 : C       
 270 : C     vitesse + cosinus directors du repere local      
 271 : C     densité
 272 : C     pression
 273 : C     gamma
 274 : 
 275 : C
 276 : C**** Cosinus directors du repere local et vitesse
 277 : C      
 278 : C     Les cosinus directeurs
 279 : C
 280 : C     VAPOUR PHASE
 281 : 
 282 :       N1 = 2
 283 :       N3 = 6
 284 :       L1 = 28
 285 :       SEGINI MCHEL1
 286 :       IUVF = MCHEL1
 287 :       MCHEL1.TITCHE = 'UV '
 288 :       MCHEL1.IMACHE(1) = IFACE
 289 :       MCHEL1.IMACHE(2) = IFACEL
 290 :       MCHEL1.CONCHE(1) = '(n,t,v) in (x,y)'
 291 :       MCHEL1.CONCHE(2) = ' UV in (n,t,v)  '
 292 : C
 293 : C**** Valeurs des cosinus definies par respect au repair global, i.e.
 294 : C      
 295 :       MCHEL1.INFCHE(1,1) = 2
 296 :       MCHEL1.INFCHE(1,3) = NIFOUR
 297 :       MCHEL1.INFCHE(1,4) = 0
 298 :       MCHEL1.INFCHE(1,5) = 0
 299 :       MCHEL1.INFCHE(1,6) = 0
 300 :       MCHEL1.IFOCHE = IFOUR
 301 : C
 302 : C**** Valeurs de vitesse definies par respect au repair local, i.e.
 303 : C      
 304 :       MCHEL1.INFCHE(2,1) = 1
 305 :       MCHEL1.INFCHE(2,3) = NIFOUR
 306 :       MCHEL1.INFCHE(2,4) = 0
 307 :       MCHEL1.INFCHE(2,5) = 0
 308 :       MCHEL1.INFCHE(2,6) = 0
 309 : C
 310 : C**** Le cosinus directeurs
 311 : C
 312 :       N1PTEL = 1
 313 :       N1EL = NFAC
 314 :       N2PTEL = 0
 315 :       N2EL =   0
 316 : C
 317 : C**** MCHAML a N2 composantes:
 318 : C      
 319 : C     cosinus directeurs du repere local (n,t1)
 320 : C
 321 : C     IDIM = 3 -> 9 composantes
 322 : C
 323 :       N2 = 9
 324 :       SEGINI MCHAM1
 325 :       MCHEL1.ICHAML(1) = MCHAM1
 326 :       MCHAM1.NOMCHE(1) = 'NVX     '
 327 :       MCHAM1.NOMCHE(2) = 'NVY     '
 328 :       MCHAM1.NOMCHE(3) = 'NVZ     '
 329 :       MCHAM1.NOMCHE(4) = 'TVX     '
 330 :       MCHAM1.NOMCHE(5) = 'TVY     '
 331 :       MCHAM1.NOMCHE(6) = 'TVZ     '
 332 :       MCHAM1.NOMCHE(7) = 'VVX     '
 333 :       MCHAM1.NOMCHE(8) = 'VVY     '
 334 :       MCHAM1.NOMCHE(9) = 'VVZ     '
 335 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 336 :       MCHAM1.TYPCHE(2) = 'REAL*8          '
 337 :       MCHAM1.TYPCHE(3) = 'REAL*8          '
 338 :       MCHAM1.TYPCHE(4) = 'REAL*8          '
 339 :       MCHAM1.TYPCHE(5) = 'REAL*8          '
 340 :       MCHAM1.TYPCHE(6) = 'REAL*8          '
 341 :       MCHAM1.TYPCHE(7) = 'REAL*8          '
 342 :       MCHAM1.TYPCHE(8) = 'REAL*8          '
 343 :       MCHAM1.TYPCHE(9) = 'REAL*8          '
 344 :       SEGINI MLVNX
 345 :       SEGINI MLVNY
 346 :       SEGINI MLVNZ
 347 :       SEGINI MLVT1X
 348 :       SEGINI MLVT1Y
 349 :       SEGINI MLVT1Z
 350 :       SEGINI MLVT2X
 351 :       SEGINI MLVT2Y
 352 :       SEGINI MLVT2Z
 353 :       MCHAM1.IELVAL(1) = MLVNX
 354 :       MCHAM1.IELVAL(2) = MLVNY
 355 :       MCHAM1.IELVAL(3) = MLVNZ
 356 :       MCHAM1.IELVAL(4) = MLVT1X
 357 :       MCHAM1.IELVAL(5) = MLVT1Y
 358 :       MCHAM1.IELVAL(6) = MLVT1Z
 359 :       MCHAM1.IELVAL(7) = MLVT2X
 360 :       MCHAM1.IELVAL(8) = MLVT2Y
 361 :       MCHAM1.IELVAL(9) = MLVT2Z
 362 :       SEGDES MCHAM1         
 363 : C
 364 : C**** Vitesse
 365 : C
 366 :       N1EL = NFAC
 367 :       N1PTEL = 3
 368 :       N2EL = 0
 369 :       N2PTEL = 0      
 370 : C
 371 : C**** MCHAML a N2 composantes:
 372 : C      
 373 : C     IDIM = 3 -> 3 composantes
 374 : C
 375 :       N2 = 3
 376 :       SEGINI MCHAM1
 377 :       MCHEL1.ICHAML(2) = MCHAM1
 378 :       SEGDES MCHEL1
 379 :       MCHAM1.NOMCHE(1) = 'UVN     '
 380 :       MCHAM1.NOMCHE(2) = 'UVT     '
 381 :       MCHAM1.NOMCHE(3) = 'UVV     '
 382 :       MCHAM1.TYPCHE(1) = 'REAL*8         '
 383 :       MCHAM1.TYPCHE(2) = 'REAL*8         '
 384 :       MCHAM1.TYPCHE(3) = 'REAL*8         '
 385 :       SEGINI MLUVN
 386 :       SEGINI MLUVT
 387 :       SEGINI MLUVV
 388 :       MCHAM1.IELVAL(1) = MLUVN
 389 :       MCHAM1.IELVAL(2) = MLUVT
 390 :       MCHAM1.IELVAL(3) = MLUVV
 391 :       SEGDES MCHAM1
 392 : C 
 393 : C**** Cosinus directors du repere local et vitesse
 394 : C      
 395 : C     Les cosinus directeurs
 396 : C
 397 : C     LIQUID PHASE
 398 : 
 399 :       N1 = 2
 400 :       N3 = 6
 401 :       L1 = 28
 402 :       SEGINI MCHEL1
 403 :       IULF = MCHEL1
 404 :       MCHEL1.TITCHE = 'UL '
 405 :       MCHEL1.IMACHE(1) = IFACE
 406 :       MCHEL1.IMACHE(2) = IFACEL
 407 :       MCHEL1.CONCHE(1) = '(n,t,v) in (x,y)'
 408 :       MCHEL1.CONCHE(2) = ' UL in (n,t,v)  '
 409 : C
 410 : C**** Valeurs des cosinus definies par respect au repair global, i.e.
 411 : C      
 412 :       MCHEL1.INFCHE(1,1) = 2
 413 :       MCHEL1.INFCHE(1,3) = NIFOUR
 414 :       MCHEL1.INFCHE(1,4) = 0
 415 :       MCHEL1.INFCHE(1,5) = 0
 416 :       MCHEL1.INFCHE(1,6) = 0
 417 :       MCHEL1.IFOCHE = IFOUR
 418 : C
 419 : C**** Valeurs de vitesse definies par respect au repair local, i.e.
 420 : C      
 421 :       MCHEL1.INFCHE(2,1) = 1
 422 :       MCHEL1.INFCHE(2,3) = NIFOUR
 423 :       MCHEL1.INFCHE(2,4) = 0
 424 :       MCHEL1.INFCHE(2,5) = 0
 425 :       MCHEL1.INFCHE(2,6) = 0
 426 : C
 427 : C**** Le cosinus directeurs
 428 : C
 429 :       N1PTEL = 1
 430 :       N1EL = NFAC
 431 :       N2PTEL = 0
 432 :       N2EL =   0
 433 : C
 434 : C**** MCHAML a N2 composantes:
 435 : C      
 436 : C     cosinus directeurs du repere local (n,t1)
 437 : C
 438 : C     IDIM = 3 -> 9 composantes
 439 : C
 440 :       N2 = 9
 441 :       SEGINI MCHAM1
 442 :       MCHEL1.ICHAML(1) = MCHAM1
 443 :       MCHAM1.NOMCHE(1) = 'NLX     '
 444 :       MCHAM1.NOMCHE(2) = 'NLY     '
 445 :       MCHAM1.NOMCHE(3) = 'NLZ     '
 446 :       MCHAM1.NOMCHE(4) = 'TLX     '
 447 :       MCHAM1.NOMCHE(5) = 'TLY     '
 448 :       MCHAM1.NOMCHE(6) = 'TLZ     '
 449 :       MCHAM1.NOMCHE(7) = 'VLX     '
 450 :       MCHAM1.NOMCHE(8) = 'VLY     '
 451 :       MCHAM1.NOMCHE(9) = 'VLZ     '
 452 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 453 :       MCHAM1.TYPCHE(2) = 'REAL*8          '
 454 :       MCHAM1.TYPCHE(3) = 'REAL*8          '
 455 :       MCHAM1.TYPCHE(4) = 'REAL*8          '
 456 :       MCHAM1.TYPCHE(5) = 'REAL*8          '
 457 :       MCHAM1.TYPCHE(6) = 'REAL*8          '
 458 :       MCHAM1.TYPCHE(7) = 'REAL*8          '
 459 :       MCHAM1.TYPCHE(8) = 'REAL*8          '
 460 :       MCHAM1.TYPCHE(9) = 'REAL*8          '
 461 :       SEGINI MLLNX
 462 :       SEGINI MLLNY
 463 :       SEGINI MLLNZ
 464 :       SEGINI MLLT1X
 465 :       SEGINI MLLT1Y
 466 :       SEGINI MLLT1Z
 467 :       SEGINI MLLT2X
 468 :       SEGINI MLLT2Y
 469 :       SEGINI MLLT2Z
 470 :       MCHAM1.IELVAL(1) = MLLNX
 471 :       MCHAM1.IELVAL(2) = MLLNY
 472 :       MCHAM1.IELVAL(3) = MLLNZ
 473 :       MCHAM1.IELVAL(4) = MLLT1X
 474 :       MCHAM1.IELVAL(5) = MLLT1Y
 475 :       MCHAM1.IELVAL(6) = MLLT1Z
 476 :       MCHAM1.IELVAL(7) = MLLT2X
 477 :       MCHAM1.IELVAL(8) = MLLT2Y
 478 :       MCHAM1.IELVAL(9) = MLLT2Z
 479 :       SEGDES MCHAM1         
 480 : C
 481 : C**** Vitesse
 482 : C
 483 :       N1EL = NFAC
 484 :       N1PTEL = 3
 485 :       N2EL = 0
 486 :       N2PTEL = 0      
 487 : C
 488 : C**** MCHAML a N2 composantes:
 489 : C      
 490 : C     IDIM = 3 -> 3 composantes
 491 : C
 492 :       N2 = 3
 493 :       SEGINI MCHAM1
 494 :       MCHEL1.ICHAML(2) = MCHAM1
 495 :       SEGDES MCHEL1
 496 :       MCHAM1.NOMCHE(1) = 'ULN     '
 497 :       MCHAM1.NOMCHE(2) = 'ULT     '
 498 :       MCHAM1.NOMCHE(3) = 'ULV     '
 499 :       MCHAM1.TYPCHE(1) = 'REAL*8         '
 500 :       MCHAM1.TYPCHE(2) = 'REAL*8         '
 501 :       MCHAM1.TYPCHE(3) = 'REAL*8         '
 502 :       SEGINI MLULN
 503 :       SEGINI MLULT
 504 :       SEGINI MLULV
 505 :       MCHAM1.IELVAL(1) = MLULN
 506 :       MCHAM1.IELVAL(2) = MLULT
 507 :       MCHAM1.IELVAL(3) = MLULV
 508 :       SEGDES MCHAM1
 509 : C
 510 : C**** Void fraction
 511 : C
 512 :       N1 = 1
 513 :       N3 = 6
 514 :       L1 = 15
 515 :       SEGINI MCHEL2
 516 :       IALPF = MCHEL2
 517 :       MCHEL2.IMACHE(1) = IFACEL
 518 :       MCHEL2.TITCHE = 'ALPHA           '
 519 :       MCHEL2.CONCHE(1) = '                '
 520 : C
 521 : C**** Valeurs independente du repére, i.e.
 522 : C      
 523 :       MCHEL2.INFCHE(1,1) = 0
 524 :       MCHEL2.INFCHE(1,3) = NIFOUR
 525 :       MCHEL2.INFCHE(1,4) = 0
 526 :       MCHEL2.INFCHE(1,5) = 0
 527 :       MCHEL2.INFCHE(1,6) = 0
 528 :       MCHEL2.IFOCHE = IFOUR
 529 :       N2 = 1
 530 :       SEGINI MCHAM1
 531 :       MCHEL2.ICHAML(1) = MCHAM1
 532 :       SEGDES MCHEL2
 533 :       MCHAM1.NOMCHE(1) = 'SCAL    '
 534 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 535 :       SEGINI MLALP
 536 :       MCHAM1.IELVAL(1) = MLALP
 537 :       SEGDES MCHAM1
 538 : C
 539 : C**** Pressure
 540 : C
 541 :       MCHEL1 = IALPF
 542 :       SEGINI, MCHEL2 = MCHEL1
 543 :       IPF = MCHEL2
 544 :       MCHEL2.TITCHE = 'P            '
 545 : C
 546 : C**** MCHAM1 = MCHAML de la alpha
 547 : C
 548 :       SEGINI, MCHAM2 = MCHAM1
 549 :       MCHEL2.ICHAML(1) = MCHAM2
 550 :       SEGDES MCHEL2
 551 :       SEGINI MLP
 552 :       MCHAM2.IELVAL(1) = MLP
 553 :       SEGDES MCHAM2
 554 : C
 555 : C**** Vapour temperature
 556 : C
 557 :       MCHEL1 = IALPF
 558 :       SEGINI, MCHEL2 = MCHEL1
 559 :       ITVF = MCHEL2
 560 :       MCHEL2.TITCHE = 'TV             '
 561 : C
 562 : C**** MCHAM1 = MCHAML de la alpha
 563 : C
 564 :       SEGINI, MCHAM2 = MCHAM1
 565 :       MCHEL2.ICHAML(1) = MCHAM2
 566 :       SEGDES MCHEL2
 567 :       SEGINI MLTV
 568 :       MCHAM2.IELVAL(1) = MLTV
 569 :       SEGDES MCHAM2
 570 : C
 571 : C**** Liquid temperature
 572 : C
 573 :       MCHEL1 = IALPF
 574 :       SEGINI, MCHEL2 = MCHEL1
 575 :       ITLF = MCHEL2
 576 :       MCHEL2.TITCHE = 'TL             '
 577 : C
 578 : C**** MCHAM1 = MCHAML de la alpha
 579 : C
 580 :       SEGINI, MCHAM2 = MCHAM1
 581 :       MCHEL2.ICHAML(1) = MCHAM2
 582 :       SEGDES MCHEL2
 583 :       SEGINI MLTL
 584 :       MCHAM2.IELVAL(1) = MLTL
 585 :       SEGDES MCHAM2
 586 : C
 587 : C**** Vapour density
 588 : C
 589 :       MCHEL1 = IALPF
 590 :       SEGINI, MCHEL2 = MCHEL1
 591 :       IRVF = MCHEL2
 592 :       MCHEL2.TITCHE = 'RV             '
 593 : C
 594 : C**** MCHAM1 = MCHAML de la alpha
 595 : C
 596 :       SEGINI, MCHAM2 = MCHAM1
 597 :       MCHEL2.ICHAML(1) = MCHAM2
 598 :       SEGDES MCHEL2
 599 :       SEGINI MLRV
 600 :       MCHAM2.IELVAL(1) = MLRV
 601 :       SEGDES MCHAM2
 602 : C
 603 : C**** Liquid density
 604 : C
 605 :       MCHEL1 = IALPF
 606 :       SEGINI, MCHEL2 = MCHEL1
 607 :       IRLF = MCHEL2
 608 :       MCHEL2.TITCHE = 'RL             '
 609 : C
 610 : C**** MCHAM1 = MCHAML de la alpha
 611 : C
 612 :       SEGINI, MCHAM2 = MCHAM1
 613 :       MCHEL2.ICHAML(1) = MCHAM2
 614 :       SEGDES MCHEL2
 615 :       SEGINI MLRL
 616 :       MCHAM2.IELVAL(1) = MLRL
 617 :       SEGDES MCHAM2
 618 : 
 619 : C
 620 : C**** Recapitulatif: les MELVALs et les MPOVALs actives
 621 : C
 622 : C     MLVNX, MLVNY, MLVNZ
 623 : C     MLVTX, MLVTY, MLVTZ
 624 : C     MLVVX, MLVVY, MLVVZ
 625 : C
 626 : C     MLLNX, MLLNY, MLLNZ
 627 : C     MLLTX, MLLTY, MLLTZ
 628 : C     MLLVX, MLLVY, MLLVZ
 629 : C
 630 : C     MLUVN, MLUVT, MLUVV -> vapour velocities
 631 : C
 632 : C     MLULN, MLULT, MLULV -> liquid velocities
 633 : C
 634 : C     MLALP  -> void fraction
 635 : C
 636 : C     MLP     -> pressure
 637 : C
 638 : C     MLTV    -> vapour temperature
 639 : C
 640 : C     MLTL    -> liquid temperature
 641 : C
 642 : C     MLRV    -> vapour density
 643 : C
 644 : C     MLRL    -> liquid density
 645 : C****
 646 : C     MPALP   -> void fraction
 647 : C
 648 : C     MPUVC   -> vapour velocity
 649 : C
 650 : C     MPULC   -> liquid velocity
 651 : C
 652 : C     MPPC    -> pressure
 653 : C
 654 : C     MPTVC   -> vapour temperature
 655 : C
 656 : C     MPTLC   -> liquid temperature
 657 : C
 658 : C     MPRVC   -> vapour density
 659 : C
 660 : C     MPRLC   -> liquid density
 661 : C
 662 : C     MPNORM  -> normales aux faces
 663 : C
 664 : C**** Boucle sur le faces
 665 : C     
 666 :       DO NLCF = 1, NFAC
 667 : C
 668 : C******* NLCF  = numero local du centre de face
 669 : C        NGCF  = numero global du centre de face
 670 : C        NGCEG = numero global du centre ELT "gauche"
 671 : C        NLCEG = numero local du centre ELT "gauche"
 672 : C        NGCED = numero global du centre ELT "droite"
 673 : C        NLCED = numero local du centre ELT "droite"
 674 : C
 675 :          NGCEG = IPT1.NUM(1,NLCF)
 676 :          NGCF  = IPT1.NUM(2,NLCF)
 677 :          NGCED = IPT1.NUM(3,NLCF)
 678 :          NLCEG = MLENT1.LECT(NGCEG)
 679 :          NLCED = MLENT1.LECT(NGCED)
 680 : C
 681 : C******* TEST: IPT2.NUM(1,NLCF) = IPT1.NUM(2,NLCF)
 682 : C
 683 :          NGCF1 = IPT2.NUM(1,NLCF)
 684 :          IF( NGCF1 .NE. NGCF) THEN
 685 :             LOGAN = .TRUE.
 686 :             MESERR(1:40) = 'PRET, subroutine pre111.eso             ' 
 687 :             GOTO 9999
 688 :          ENDIF
 689 : C
 690 : C******* Cosinus directeurs des NORMALES aux faces
 691 : C
 692 : C        On impose que les normales sont direct "Gauche" -> "Centre"
 693 : C
 694 :          XG = XCOOR((NGCEG-1)*(IDIM+1)+1)
 695 :          YG = XCOOR((NGCEG-1)*(IDIM+1)+2)
 696 :          ZG = XCOOR((NGCEG-1)*(IDIM+1)+3)
 697 :          XC = XCOOR((NGCF-1)*(IDIM+1)+1)
 698 :          YC = XCOOR((NGCF-1)*(IDIM+1)+2)
 699 :          ZC = XCOOR((NGCF-1)*(IDIM+1)+3)
 700 :          DXG = XC - XG
 701 :          DYG = YC - YG
 702 :          DZG = ZC - ZG
 703 :             
 704 : C
 705 : C******* On calcule le sign du pruduit scalare 
 706 : C        (Normales de Castem) * (vecteur "gauche" -> "centre")
 707 : C
 708 :          CNX = MPNORM.VPOCHA(NLCF,7)
 709 :          CNY = MPNORM.VPOCHA(NLCF,8)
 710 :          CNZ = MPNORM.VPOCHA(NLCF,9)
 711 :          ORIENT = CNX * DXG + CNY * DYG + CNZ * DZG
 712 :          ORIENT = SIGN(1.0D0,ORIENT)
 713 :          IF(ORIENT .NE. 1.0D0)THEN
 714 :             LOGAN = .TRUE. 
 715 :             MESERR(1:30)=
 716 :      &           'PRET , subroutine pre121.eso. '               
 717 :             GOTO 9999
 718 :          ENDIF
 719 :          CNX = CNX * ORIENT
 720 :          CNY = CNY * ORIENT
 721 :          CNZ = CNZ * ORIENT
 722 : C
 723 : C********** Cosinus directeurs de tangente 1 
 724 : C
 725 :          CTX = MPNORM.VPOCHA(NLCF,1) * ORIENT
 726 :          CTY = MPNORM.VPOCHA(NLCF,2) * ORIENT
 727 :          CTZ = MPNORM.VPOCHA(NLCF,3) * ORIENT
 728 : C
 729 : C********** Cosinus directeurs de tangente 2 
 730 : C
 731 :          CVX = MPNORM.VPOCHA(NLCF,4) * ORIENT
 732 :          CVY = MPNORM.VPOCHA(NLCF,5) * ORIENT
 733 :          CVZ = MPNORM.VPOCHA(NLCF,6) * ORIENT
 734 : C
 735 : C
 736 : C
 737 : C******* Les autres MELVALs
 738 : C
 739 : C
 740 : C******* N.B.: On suppose qu'on a déjà controlle RO, P > 0
 741 : C              GAMMA \in (1,3)
 742 : C              Si non il faut le faire, en utlisant LOGBOR, 
 743 : C              LOGNEG, VALER, VAL1, VAL2
 744 : C
 745 : C
 746 : C
 747 : C******* NGCEG = NGCED -> Mur
 748 : C
 749 : 
 750 :          IF( NGCEG .EQ. NGCED)THEN
 751 :             AG   = MPALP.VPOCHA(NLCEG, 1)
 752 :             PG   = MPPC.VPOCHA(NLCEG, 1)
 753 :             TVG  = MPTVC.VPOCHA(NLCEG, 1)
 754 :             TLG  = MPTLC.VPOCHA(NLCEG, 1)
 755 :             RVG  = MPRVC.VPOCHA(NLCEG, 1)            
 756 :             RLG  = MPRLC.VPOCHA(NLCEG, 1)
 757 :             UVXG = MPUVC.VPOCHA(NLCEG, 1)
 758 :             UVYG = MPUVC.VPOCHA(NLCEG, 2)
 759 :             UVZG = MPUVC.VPOCHA(NLCEG, 3)
 760 :             ULXG = MPULC.VPOCHA(NLCEG, 1)
 761 :             ULYG = MPULC.VPOCHA(NLCEG, 2)
 762 :             ULZG = MPULC.VPOCHA(NLCEG, 3)
 763 :             UVNG = UVXG * CNX + UVYG * CNY + UVZG * CNZ
 764 :             UVTG = UVXG * CTX + UVYG * CTY + UVZG * CTZ
 765 :             UVVG = UVXG * CVX + UVYG * CVY + UVZG * CVZ
 766 :             ULNG = ULXG * CNX + ULYG * CNY + ULZG * CNZ
 767 :             ULTG = ULXG * CTX + ULYG * CTY + ULZG * CTZ
 768 :             ULVG = ULXG * CVX + ULYG * CVY + ULZG * CVZ
 769 : C              
 770 : C********** Son etat droite
 771 : C
 772 :             AD  = AG
 773 :             PD  = PG
 774 :             TVD = TVG
 775 :             TLD = TLG
 776 :             RVD = RVG
 777 :             RLD = RLG
 778 :             UVND = -1.0D0 * UVNG
 779 :             UVTD = UVTG
 780 :             UVVD = UVVG
 781 :             ULND = -1.0D0 * ULNG
 782 :             ULTD = ULTG
 783 :             ULVD = ULVG
 784 : C     
 785 : C************* Fin cas mur
 786 : C
 787 :          ELSE
 788 : C
 789 : C************* Etat gauche
 790 : C
 791 :             AG   = MPALP.VPOCHA(NLCEG, 1)
 792 :             PG   = MPPC.VPOCHA(NLCEG, 1)
 793 :             TVG  = MPTVC.VPOCHA(NLCEG, 1)
 794 :             TLG  = MPTLC.VPOCHA(NLCEG, 1)
 795 :             RVG  = MPRVC.VPOCHA(NLCEG, 1)            
 796 :             RLG  = MPRLC.VPOCHA(NLCEG, 1)
 797 :             UVXG = MPUVC.VPOCHA(NLCEG, 1)
 798 :             UVYG = MPUVC.VPOCHA(NLCEG, 2)               
 799 :             UVZG = MPUVC.VPOCHA(NLCEG, 3)
 800 :             ULXG = MPULC.VPOCHA(NLCEG, 1)
 801 :             ULYG = MPULC.VPOCHA(NLCEG, 2)
 802 :             ULZG = MPULC.VPOCHA(NLCEG, 3)
 803 :             UVNG = UVXG * CNX + UVYG * CNY + UVZG * CNZ
 804 :             UVTG = UVXG * CTX + UVYG * CTY + UVZG * CTZ
 805 :             UVVG = UVXG * CVX + UVYG * CVY + UVZG * CVZ
 806 :             ULNG = ULXG * CNX + ULYG * CNY + ULZG * CNZ
 807 :             ULTG = ULXG * CTX + ULYG * CTY + ULZG * CTZ
 808 :             ULVG = ULXG * CVX + ULYG * CVY + ULZG * CVZ
 809 : C
 810 : C********** Etat gauche
 811 : C
 812 :             AD   = MPALP.VPOCHA(NLCED, 1)
 813 :             PD   = MPPC.VPOCHA(NLCED, 1)
 814 :             TVD  = MPTVC.VPOCHA(NLCED, 1)
 815 :             TLD  = MPTLC.VPOCHA(NLCED, 1)
 816 :             RVD  = MPRVC.VPOCHA(NLCED, 1)            
 817 :             RLD  = MPRLC.VPOCHA(NLCED, 1)
 818 :             UVXD = MPUVC.VPOCHA(NLCED, 1)
 819 :             UVYD = MPUVC.VPOCHA(NLCED, 2)
 820 :             UVZD = MPUVC.VPOCHA(NLCED, 3)               
 821 :             ULXD = MPULC.VPOCHA(NLCED, 1)
 822 :             ULYD = MPULC.VPOCHA(NLCED, 2)
 823 :             ULZD = MPULC.VPOCHA(NLCED, 3)
 824 :             UVND = UVXD * CNX + UVYD * CNY + UVZD * CNZ
 825 :             UVTD = UVXD * CTX + UVYD * CTY + UVZD * CTZ
 826 :             UVVD = UVXD * CVX + UVYD * CVY + UVZD * CVZ
 827 :             ULND = ULXD * CNX + ULYD * CNY + ULZD * CNZ
 828 :             ULTD = ULXD * CTX + ULYD * CTY + ULZD * CTZ
 829 :             ULVD = ULXD * CVX + ULYD * CVY + ULZD * CVZ
 830 :          ENDIF
 831 : C
 832 : C************* Les MELVALs
 833 : C
 834 :          MLALP.VELCHE(1,NLCF) = AG
 835 :          MLALP.VELCHE(3,NLCF) = AD
 836 :          MLP.VELCHE(1,NLCF)  = PG
 837 :          MLP.VELCHE(3,NLCF)  = PD
 838 :          MLTV.VELCHE(1,NLCF) = TVG
 839 :          MLTV.VELCHE(3,NLCF) = TVD
 840 :          MLTL.VELCHE(1,NLCF) = TLG
 841 :          MLTL.VELCHE(3,NLCF) = TLD
 842 :          MLRV.VELCHE(1,NLCF) = RVG
 843 :          MLRV.VELCHE(3,NLCF) = RVD
 844 :          MLRL.VELCHE(1,NLCF) = RLG
 845 :          MLRL.VELCHE(3,NLCF) = RLD
 846 : 
 847 :          MLUVN.VELCHE(1,NLCF) = UVNG
 848 :          MLUVN.VELCHE(3,NLCF) = UVND
 849 :          MLUVT.VELCHE(1,NLCF) = UVTG
 850 :          MLUVT.VELCHE(3,NLCF) = UVTD
 851 :          MLUVV.VELCHE(1,NLCF) = UVVG
 852 :          MLUVV.VELCHE(3,NLCF) = UVVD
 853 : 
 854 :          MLULN.VELCHE(1,NLCF) = ULNG
 855 :          MLULN.VELCHE(3,NLCF) = ULND
 856 :          MLULT.VELCHE(1,NLCF) = ULTG
 857 :          MLULT.VELCHE(3,NLCF) = ULTD
 858 :          MLULV.VELCHE(1,NLCF) = ULVG
 859 :          MLULV.VELCHE(3,NLCF) = ULVD
 860 : 
 861 :          MLVNX.VELCHE(1,NLCF) = CNX
 862 :          MLVNY.VELCHE(1,NLCF) = CNY
 863 :          MLVNZ.VELCHE(1,NLCF) = CNZ
 864 :          MLVT1X.VELCHE(1,NLCF) = CTX
 865 :          MLVT1Y.VELCHE(1,NLCF) = CTY
 866 :          MLVT1Z.VELCHE(1,NLCF) = CTZ
 867 :          MLVT2X.VELCHE(1,NLCF) = CVX
 868 :          MLVT2Y.VELCHE(1,NLCF) = CVY
 869 :          MLVT2Z.VELCHE(1,NLCF) = CVZ
 870 : 
 871 :          MLLNX.VELCHE(1,NLCF) = CNX
 872 :          MLLNY.VELCHE(1,NLCF) = CNY
 873 :          MLLNZ.VELCHE(1,NLCF) = CNZ
 874 :          MLLT1X.VELCHE(1,NLCF) = CTX
 875 :          MLLT1Y.VELCHE(1,NLCF) = CTY
 876 :          MLLT1Z.VELCHE(1,NLCF) = CTZ
 877 :          MLVT2X.VELCHE(1,NLCF) = CVX
 878 :          MLVT2Y.VELCHE(1,NLCF) = CVY
 879 :          MLVT2Z.VELCHE(1,NLCF) = CVZ
 880 : 
 881 :       ENDDO            
 882 : C
 883 : C**** Desactivation des SEGMENTs
 884 : C
 885 :       SEGDES IPT1
 886 :       SEGDES IPT2
 887 : C
 888 :       SEGDES MPALP
 889 :       SEGDES MPUVC
 890 :       SEGDES MPULC
 891 :       SEGDES MPPC
 892 :       SEGDES MPTVC
 893 :       SEGDES MPTLC
 894 :       SEGDES MPRVC
 895 :       SEGDES MPRLC
 896 :       SEGDES MPNORM
 897 : 
 898 :       SEGDES MLALP
 899 :       SEGDES MLP
 900 :       SEGDES MLTV
 901 :       SEGDES MLTL
 902 :       SEGDES MLRV
 903 :       SEGDES MLRL
 904 : 
 905 :       SEGDES MLUVN
 906 :       SEGDES MLUVT
 907 :       SEGDES MLUVV
 908 :       SEGDES MLULN
 909 :       SEGDES MLULT
 910 :       SEGDES MLULV
 911 : 
 912 :       SEGDES MLVNX
 913 :       SEGDES MLVNY
 914 :       SEGDES MLVNZ
 915 :       SEGDES MLVT1X
 916 :       SEGDES MLVT1Y
 917 :       SEGDES MLVT1Z
 918 :       SEGDES MLVT2X
 919 :       SEGDES MLVT2Y
 920 :       SEGDES MLVT2Z
 921 : 
 922 :       SEGDES MLLNX
 923 :       SEGDES MLLNY
 924 :       SEGDES MLLNZ
 925 :       SEGDES MLLT1X
 926 :       SEGDES MLLT1Y
 927 :       SEGDES MLLT1Z
 928 :       SEGDES MLLT2X
 929 :       SEGDES MLLT2Y
 930 :       SEGDES MLLT2Z
 931 : 
 932 : C
 933 : C**** Destruction du MELNTI correspondance local/global
 934 : C
 935 :       SEGSUP MLENT1
 936 : C
 937 :  9999 CONTINUE
 938 : C      
 939 :       RETURN                                                                    
 940 :       END
 941 : 
 942 : 
 943 : 
 944 :  
 945 :  
 946 :  

© Cast3M 2003 - All rights reserved.
Disclaimer