Download pre211.eso

Back to the list

   1 : C PRE211    SOURCE    PV        09/03/12    21:30:39     6325           
   2 :       SUBROUTINE PRE211(ICEN,IFACE,IFACEL,INORM,IROC,IVITC,IPC,
   3 :      &                  IYC,IGAMC,
   4 :      &                  IROF,IVITF,IPF,IYF,IGAMF,
   5 :      &                  LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
   6 : C************************************************************************
   7 : C
   8 : C PROJET            :  CASTEM 2000
   9 : C
  10 : C NOM               :  PRE211
  11 : C
  12 : C DESCRIPTION       :  Voir PRE21
  13 : C
  14 : C                      Cas Deux Dimensions
  15 : C
  16 : C                          MultiEspeces
  17 : C
  18 : C                          1er ordre en espace, 1re ordre en temps
  19 : C                      
  20 : C                      Creations des objets MCHAML IROF, IVITF, IPF,IYF,
  21 : C                      IGAMF
  22 : C      
  23 : C     
  24 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  25 : C      
  26 : C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/TTMF
  27 : C     
  28 : C************************************************************************
  29 : C
  30 : C
  31 : C APPELES (Outils)  :  KRIPAD, LICHT  
  32 : C
  33 : C APPELES (Calcul)  :  AUCUN 
  34 : C     
  35 : C
  36 : C************************************************************************
  37 : C
  38 : C ENTREES
  39 : C
  40 : C     1) Pointeurs de MELEMEs et de CHPOINTs de la table DOMAINE
  41 : C
  42 : C     ICEN    : MELEME de 'POI1' SPG des CENTRES
  43 : C
  44 : C     IFACE   : MELEME de 'POI1' SPG des FACES
  45 : C
  46 : C     IFACEL  : MELEME de 'SEG3' avec
  47 : C               CENTRE d'Elt "gauche"
  48 : C               CENTRE de Face
  49 : C               CENTRE d'Elt "droite"
  50 : C
  51 : C               N.B. = IFACE.NUM(i,1) = IFACEL.NUM(i,2)
  52 : C
  53 : C     INORM   : CHPOINT des cosinus directeurs de normales aux faces
  54 : C     
  55 : C     2) Pointeurs des  CHPOINTs
  56 : C
  57 : C     IROC    : CHPOINT "CENTRE" contenant la masse volumique RHO
  58 : C
  59 : C     IVITC   : CHPOINT "CENTRE" contenant la vitesse UX, UY ;
  60 : C
  61 : C     IPC     : CHPOINT "CENTRE" contenat la pression P;
  62 : C                    
  63 : C     IYC     : CHPOINT "CENTRE" contenat les fractions massiques;
  64 : C                    
  65 : C     IGAMC   : CHPOINT "CENTRE" contenat le "Gamma" du gaz
  66 : C
  67 : C
  68 : C SORTIES
  69 : C
  70 : C
  71 : C     IROF    : MCHAML  defini sur le MELEME de pointeur IFACEL,
  72 : C               contenant la masse volumique RHO       
  73 : C
  74 : C     IVITF   : MCHAML  defini sur le MELEME de pointeur IFACEL,
  75 : C               contenant la vitesse UN, UT dans le repaire local
  76 : C               (n,t) et defini sur le MELEME de pointeur IFACE,
  77 : C               contenant les cosinus directeurs du repere local 
  78 : C      
  79 : C     IPF     : MCHAML  defini sur le MELEME de pointeur IFACEL,
  80 : C               contenant la pression P
  81 : C      
  82 : C     IYF     : MCHAML  defini sur le MELEME de pointeur IFACEL,
  83 : C               contenant les fractions massiques
  84 : C      
  85 : C     IGAMF   : MCHAML  defini sur le MELEME de pointeur IFACEL,
  86 : C               contenant le "gamma" du gaz
  87 : C      
  88 : C     LOGAN   : anomalie detectee (changement de la convention dans
  89 : C               la table domaine)
  90 : C
  91 : C     LOGNEG  : (LOGICAL): si .TRUE. une pression ou une densité
  92 : C               negative a été detectée -> en interactif le
  93 : C               programme s'arrete  en GIBIANE 
  94 : C               (erreur stocké en MESERR et VALER)
  95 : C
  96 : C     LOGBOR  : (LOGICAL): si .TRUE. un gamma a ete detecte
  97 : C               dehor 1 et 3 (sa valeur stockée en MESERR et VALER;
  98 : C               en VAL1 et en VAL2 on stocke 1.0 et 3.0)
  99 : C
 100 : C     MESERR
 101 : C     VALER
 102 : C     VAL1,
 103 : C     VAL2    : pour les messages d'erreur
 104 : C
 105 : C************************************************************************
 106 : C
 107 : C HISTORIQUE (Anomalies et modifications éventuelles)
 108 : C
 109 : C HISTORIQUE :  Créée le 11.6.98.
 110 : C 
 111 : C************************************************************************
 112 : C
 113 : C      
 114 : C ATTENTION: Cet programme marche si le MAILLAGE est convex;
 115 : C            si non il faut changer l'argoritme de calcul de
 116 : C            l'orientation des normales aux faces.
 117 : C
 118 : C 
 119 : C************************************************************************
 120 : C
 121 : C**** Variables de COOPTIO
 122 : C
 123 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
 124 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
 125 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
 126 : C     &        ,IECHO,   IIMPI,  IOSPI
 127 : C     &        ,IDIM
 128 : CC     &        ,MCOORD      
 129 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
 130 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
 131 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
 132 : C     &        ,NUCROU, IPSAUV
 133 : C
 134 : C**** Les variables
 135 : C
 136 :       IMPLICIT INTEGER(I-N)
 137 :       INTEGER ICEN, IFACE, IFACEL, IROC, IVITC, IPC ,IYC, IGAMC, INORM
 138 :      &       , IROF, IVITF, IPF, IYF, IGAMF, NESP
 139 :      &       , IGEOM, NFAC
 140 :      &       , N1PTEL, N1EL, N2PTEL, N2EL, N2, N1, N3, L1
 141 :      &       , NLCF, NGCF, NGCEG, NLCEG, NGCED, NLCED, NGCF1, I1
 142 :       REAL*8 VALER, VAL1, VAL2, XG, YG, XC, YC, DXG, DYG
 143 :      &       , CNX, CNY, CTX, CTY, ORIENT
 144 :      &       , ROG, PG, GAMG, UXG, UYG, UNG, UTG
 145 :      &       , ROD, PD, GAMD, UXD, UYD, UND, UTD
 146 :       CHARACTER*(40) MESERR
 147 :       CHARACTER*(8) TYPE, CARCEL
 148 :       LOGICAL LOGAN,LOGNEG, LOGBOR
 149 : C
 150 : C**** Les Includes
 151 : C
 152 : -INC SMCOORD
 153 : -INC CCOPTIO
 154 : -INC SMCHPOI
 155 :       POINTEUR MPROC.MPOVAL, MPVITC.MPOVAL, MPPC.MPOVAL,
 156 :      &         MPGAMC.MPOVAL, MPNORM.MPOVAL, MPYC.MPOVAL
 157 : -INC SMCHAML
 158 :       POINTEUR MELVNX.MELVAL, MELVNY.MELVAL, 
 159 :      &         MELT1X.MELVAL, MELT1Y.MELVAL
 160 :       POINTEUR MELVUN.MELVAL, MELVUT.MELVAL
 161 :       POINTEUR MELRO.MELVAL, MELP.MELVAL,
 162 :      &         MELGAM.MELVAL
 163 :       POINTEUR MCHAMY.MCHAML
 164 : -INC SMLENTI
 165 : -INC SMELEME
 166 : C
 167 : C**** Segments des fractions massiques gauche et droit
 168 : C
 169 :       SEGMENT FRAMAS
 170 :          REAL*8 FRAMG(NESP), FRAMD(NESP)
 171 :       ENDSEGMENT
 172 : C
 173 : C**** Initialisation des parametres d'erreur déjà faite, i.e.
 174 : C
 175 : C     LOGNEG  = .FALSE.
 176 : C     LOGBOR  = .FALSE.
 177 : C     MESERR = '                                        '
 178 : C     MOTERR(1:40) = MESERR(1:40)
 179 : C     VALER = 0.0D0
 180 : C     VAL1 = 0.0D0
 181 : C     VAL2 = 0.0D0
 182 : C
 183 : C
 184 : C**** KRIPAD pour la correspondance global/local de centre
 185 : C
 185 :       CALL KRIPAD(ICEN,MLENT1)
 186 : C
 187 : C**** MLENTI1 a MCORD.XCOORD(/1)/(IDIM+1) elements
 188 : C
 189 : C     Si i est le numero global d'un noeud de ICEN,
 190 : C     MLENT1.LECT(i) contient sa position, i.e.
 191 : C
 192 : C     I              = numero global du noeud centre      
 193 : C     MLENT1.LECT(i) = numero local du noeud centre
 194 : C
 195 : C     MLENT1 déjà activé, i.e.
 196 : C
 197 : C     SEGACT MLENT1
 198 : C
 199 : C**** Activation de CHPOINTs
 200 : C
 201 : C     densité
 202 : C     vitesse
 203 : C     pression
 204 : C     gamma
 205 : C     cosinus directeurs des normales aux surface
 206 : C      
 206 :       CALL LICHT(IROC ,MPROC ,TYPE,IGEOM)
 206 :       CALL LICHT(IVITC,MPVITC,TYPE,IGEOM)
 206 :       CALL LICHT(IPC  ,MPPC  ,TYPE,IGEOM)
 206 :       CALL LICHT(IGAMC,MPGAMC,TYPE,IGEOM)
 206 :       CALL LICHT(INORM,MPNORM,TYPE,IGEOM)
 207 : C
 208 : C**** MPOVA1 - MPOVA5 sont déjà activés i.e.:
 209 : C     
 210 : C     SEGACT MPROC
 211 : C     SEGACT MPVITC
 212 : C     SEGACT MPPC
 213 : C     SEGACT MPGAMC
 214 : C     SEGACT MPNORM
 215 : C
 216 : C      
 217 : C**** Le MELEME FACEL
 218 : C
 219 :       IPT1 = IFACEL
 220 :       IPT2 = IFACE
 221 :       SEGACT IPT1
 222 :       SEGACT IPT2
 223 :       NFAC = IPT1.NUM(/2)
 224 : C      
 225 : C**** Creation de MCHAMLs contenant les etats gauche et droite,
 226 : C
 227 : C     i.e.:
 228 : C       
 229 : C     vitesse + cosinus directors du repere local      
 230 : C     densité
 231 : C     pression
 232 : C     gamma
 233 : C
 234 : C**** Cosinus directors du repere local et vitesse
 235 : C      
 236 : C     Les cosinus directeurs
 237 : C
 238 :       N1 = 2
 239 :       N3 = 6
 240 :       L1 = 28
 241 :       SEGINI MCHEL1
 242 :       IVITF = MCHEL1
 243 :       MCHEL1.TITCHE = 'U  '
 244 :       MCHEL1.IMACHE(1) = IFACE
 245 :       MCHEL1.IMACHE(2) = IFACEL
 246 :       MCHEL1.CONCHE(1) = ' (n,t) in (x,y) '
 247 :       MCHEL1.CONCHE(2) = ' U in (n,t)     '
 248 : C
 249 : C**** Valeurs des cosinus definies par respect au repair global, i.e.
 250 : C      
 251 :       MCHEL1.INFCHE(1,1) = 2
 252 :       MCHEL1.INFCHE(1,3) = NIFOUR
 253 :       MCHEL1.INFCHE(1,4) = 0
 254 :       MCHEL1.INFCHE(1,5) = 0
 255 :       MCHEL1.INFCHE(1,6) = 0
 256 :       MCHEL1.IFOCHE = IFOUR
 257 : C
 258 : C**** Valeurs de vitesse definies par respect au repair local, i.e.
 259 : C      
 260 :       MCHEL1.INFCHE(2,1) = 1
 261 :       MCHEL1.INFCHE(2,3) = NIFOUR
 262 :       MCHEL1.INFCHE(2,4) = 0
 263 :       MCHEL1.INFCHE(2,5) = 0
 264 :       MCHEL1.INFCHE(2,6) = 0
 265 : C
 266 : C**** Le cosinus directeurs
 267 : C
 268 :       N1PTEL = 1
 269 :       N1EL = NFAC
 270 :       N2PTEL = 0
 271 :       N2EL =   0
 272 : C
 273 : C**** MCHAML a N2 composantes:
 274 : C      
 275 : C     cosinus directeurs du repere local (n,t1)
 276 : C
 277 : C     IDIM = 2 -> 4 composantes
 278 : C
 279 :       N2 = 4
 280 :       SEGINI MCHAM1
 281 :       MCHEL1.ICHAML(1) = MCHAM1
 282 :       MCHAM1.NOMCHE(1) = 'NX      '
 283 :       MCHAM1.NOMCHE(2) = 'NY      '
 284 :       MCHAM1.NOMCHE(3) = 'TX      '
 285 :       MCHAM1.NOMCHE(4) = 'TY      '
 286 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 287 :       MCHAM1.TYPCHE(2) = 'REAL*8          '
 288 :       MCHAM1.TYPCHE(3) = 'REAL*8          '
 289 :       MCHAM1.TYPCHE(4) = 'REAL*8          '
 290 :       SEGINI MELVNX
 291 :       SEGINI MELVNY
 292 :       SEGINI MELT1X
 293 :       SEGINI MELT1Y
 294 :       MCHAM1.IELVAL(1) = MELVNX
 295 :       MCHAM1.IELVAL(2) = MELVNY
 296 :       MCHAM1.IELVAL(3) = MELT1X
 297 :       MCHAM1.IELVAL(4) = MELT1Y
 298 :       SEGDES MCHAM1         
 299 : C
 300 : C**** Vitesse
 301 : C
 302 :       N1EL = NFAC
 303 :       N1PTEL = 3
 304 :       N2EL = 0
 305 :       N2PTEL = 0      
 306 : C
 307 : C**** MCHAML a N2 composantes:
 308 : C      
 309 : C     IDIM = 2 -> 2 composantes
 310 : C
 311 :       N2 = 2
 312 :       SEGINI MCHAM1
 313 :       MCHEL1.ICHAML(2) = MCHAM1
 314 :       SEGDES MCHEL1
 315 :       MCHAM1.NOMCHE(1) = 'UN      '
 316 :       MCHAM1.NOMCHE(2) = 'UT      '
 317 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 318 :       MCHAM1.TYPCHE(2) = 'REAL*8          '
 319 :       SEGINI MELVUN
 320 :       SEGINI MELVUT
 321 :       MCHAM1.IELVAL(1) = MELVUN
 322 :       MCHAM1.IELVAL(2) = MELVUT
 323 :       SEGDES MCHAM1
 324 : C
 325 : C**** Densite
 326 : C
 327 :       N1 = 1
 328 :       N3 = 6
 329 :       L1 = 15
 330 :       SEGINI MCHEL2
 331 :       IROF = MCHEL2
 332 :       MCHEL2.IMACHE(1) = IFACEL
 333 :       MCHEL2.TITCHE = 'RO             '
 334 :       MCHEL2.CONCHE(1) = '                '
 335 : C
 336 : C**** Valeurs independente du repére, i.e.
 337 : C      
 338 :       MCHEL2.INFCHE(1,1) = 0
 339 :       MCHEL2.INFCHE(1,3) = NIFOUR
 340 :       MCHEL2.INFCHE(1,4) = 0
 341 :       MCHEL2.INFCHE(1,5) = 0
 342 :       MCHEL2.INFCHE(1,6) = 0
 343 :       MCHEL2.IFOCHE = IFOUR
 344 :       N2 = 1
 345 :       SEGINI MCHAM1
 346 :       MCHEL2.ICHAML(1) = MCHAM1
 347 :       SEGDES MCHEL2
 348 :       MCHAM1.NOMCHE(1) = 'SCAL    '
 349 :       MCHAM1.TYPCHE(1) = 'REAL*8          '
 350 :       SEGINI MELRO
 351 :       MCHAM1.IELVAL(1) = MELRO
 352 :       SEGDES MCHAM1
 353 : C
 354 : C**** Pression
 355 : C
 356 :       MCHEL1 = IROF
 357 :       SEGINI, MCHEL2 = MCHEL1
 358 :       IPF = MCHEL2
 359 :       MCHEL2.TITCHE = 'P            '
 360 : C
 361 : C**** MCHAM1 = MCHAML de la densite
 362 : C
 363 :       SEGINI, MCHAM2 = MCHAM1
 364 :       MCHEL2.ICHAML(1) = MCHAM2
 365 :       SEGDES MCHEL2
 366 :       SEGINI MELP
 367 :       MCHAM2.IELVAL(1) = MELP
 368 :       SEGDES MCHAM2
 369 : C
 370 : C**** Les fractions massiques: le CHPOINT et le relative CHAMELEM
 371 : C
 372 :       MCHPO1 = IYC
 373 :       SEGACT MCHPO1
 374 :       MSOUP1 = MCHPO1.IPCHP(1)
 375 :       SEGDES MCHPO1
 376 :       SEGACT MSOUP1
 377 :       NESP = MSOUP1.NOCOMP(/2)
 378 :       MPYC = MSOUP1.IPOVAL
 379 :       SEGACT MPYC
 380 : C
 381 :       MCHEL1 = IROF
 382 :       SEGINI, MCHEL2 = MCHEL1
 383 :       IYF = MCHEL2
 384 :       MCHEL2.TITCHE = 'Y            '
 385 :       N2 = NESP
 386 :       SEGINI MCHAMY
 387 :       MCHEL2.ICHAML(1) = MCHAMY
 388 :       SEGDES MCHEL2
 389 :       N1EL = NFAC
 390 :       N1PTEL = 3
 391 :       N2EL = 0
 392 :       N2PTEL = 0      
 393 :       DO I1 = 1, NESP         
 394 :          SEGINI MELVA1
 395 :          MCHAMY.IELVAL(I1) = MELVA1
 396 :          CARCEL = '        '
 397 :          CARCEL(1:4) = MSOUP1.NOCOMP(I1)
 398 :          MCHAMY.NOMCHE(I1) = CARCEL
 399 :          MCHAMY.TYPCHE(I1) = 'REAL*8          '
 400 :       ENDDO
 401 : C
 402 :       SEGDES MSOUP1
 403 :       SEGINI FRAMAS
 404 : C
 405 : C**** On laisse actives les segments pointes par
 406 : C     MPYC, MCHAMY,FRAMAS, et le MELVALs relatifs aux
 407 : C     fractions massiques
 408 : C      
 409 : C      
 410 : C
 411 : C**** Gamma
 412 : C
 413 :       MCHEL1 = IROF
 414 :       SEGINI, MCHEL2 = MCHEL1
 415 :       IGAMF = MCHEL2
 416 :       MCHEL2.TITCHE = 'GAMMA        '
 417 : C
 418 : C**** MCHAM1 = MCHAML de la densite
 419 : C
 420 :       SEGINI, MCHAM2 = MCHAM1
 421 :       MCHEL2.ICHAML(1) = MCHAM2
 422 :       SEGDES MCHEL2
 423 :       SEGINI MELGAM
 424 :       MCHAM2.IELVAL(1) = MELGAM
 425 :       SEGDES MCHAM2
 426 : C
 427 : C**** Recapitulatif
 428 : C
 429 : C     MELVNX, MELVNY
 430 : C     MELT1X, MELT1Y -> normales et tangentes aux faces
 431 : C
 432 : C     MELVUN, MELVUT -> vitesse
 433 : C
 434 : C     MELRO  -> densite
 435 : C
 436 : C     MELP   -> pression
 437 : C
 438 : C     MELGAM -> gamma
 439 : C
 440 : C     MPROC  -> densite
 441 : C
 442 : C     MPVITC -> vitesse
 443 : C
 444 : C     MPPC   -> pression
 445 : C
 446 : C     MPGAMC -> gamma
 447 : C
 448 : C     MPNORM -> normales aux faces
 449 : C
 450 : C**** Boucle sur le faces
 451 : C     
 452 :       DO NLCF = 1, NFAC
 453 : C
 454 : C******* NLCF  = numero local du centre de face
 455 : C        NGCF  = numero global du centre de face
 456 : C        NGCEG = numero global du centre ELT "gauche"
 457 : C        NLCEG = numero local du centre ELT "gauche"
 458 : C        NGCED = numero global du centre ELT "droite"
 459 : C        NLCED = numero local du centre ELT "droite"
 460 : C
 461 :          NGCEG = IPT1.NUM(1,NLCF)
 462 :          NGCF  = IPT1.NUM(2,NLCF)
 463 :          NGCED = IPT1.NUM(3,NLCF)
 464 :          NLCEG = MLENT1.LECT(NGCEG)
 465 :          NLCED = MLENT1.LECT(NGCED)
 466 : C
 467 : C******* TEST: IPT2.NUM(1,NLCF) = IPT1.NUM(2,NLCF)
 468 : C
 469 :          NGCF1 = IPT2.NUM(1,NLCF)
 470 :          IF( NGCF1 .NE. NGCF) THEN
 471 :             LOGAN = .TRUE.
 472 :             MESERR(1:40) = 'PRET, subroutine pre211.eso             ' 
 473 :             GOTO 9999
 474 :          ENDIF
 475 : C
 476 : C******* Cosinus directeurs des NORMALES aux faces
 477 : C
 478 : C        On impose que les normales sont direct "Gauche" -> "Centre"
 479 : C
 480 :          XG = XCOOR((NGCEG-1)*(IDIM+1)+1)
 481 :          YG = XCOOR((NGCEG-1)*(IDIM+1)+2)
 482 :          XC = XCOOR((NGCF-1)*(IDIM+1)+1)
 483 :          YC = XCOOR((NGCF-1)*(IDIM+1)+2)
 484 :          DXG = XC - XG
 485 :          DYG = YC - YG
 486 :             
 487 : C
 488 : C******* On calcule le sign du pruduit scalare 
 489 : C        (Normales de Castem) * (vecteur "gauche" -> "centre")
 490 : C
 491 :          CNX = MPNORM.VPOCHA(NLCF,1)
 492 :          CNY = MPNORM.VPOCHA(NLCF,2)
 493 :          ORIENT = CNX * DXG + CNY * DYG
 494 :          ORIENT = SIGN(1.0D0,ORIENT)
 495 :          IF(ORIENT .NE. 1.0D0)THEN
 496 :             LOGAN = .TRUE. 
 497 :             MESERR(1:30)=
 498 :      &           'PRET , subroutine pre211.eso. '               
 499 :             GOTO 9999
 500 :          ENDIF
 501 :          CNX = CNX * ORIENT
 502 :          CNY = CNY * ORIENT
 503 : C
 504 : C********** Cosinus directeurs de tangent 2D
 505 : C
 506 :          CTX = -1.0D0 * CNY
 507 :          CTY = CNX
 508 : C
 509 : C
 510 : C******* Les autres MELVALs
 511 : C
 512 : C
 513 : C******* N.B.: On suppose qu'on a déjà controlle RO, P > 0
 514 : C              GAMMA \in (1,3)
 515 : C              Si non il faut le faire, en utlisant LOGBOR, 
 516 : C              LOGNEG, VALER, VAL1, VAL2
 517 : C
 518 : C
 519 : C
 520 : C******* NGCEG = NGCED -> Mur
 521 : C
 522 :          IF( NGCEG .EQ. NGCED)THEN
 523 :             ROG = MPROC.VPOCHA(NLCEG , 1)
 524 :             PG = MPPC.VPOCHA(NLCEG, 1)
 525 :             GAMG = MPGAMC.VPOCHA(NLCEG, 1)
 526 :             UXG = MPVITC.VPOCHA(NLCEG , 1)
 527 :             UYG = MPVITC.VPOCHA(NLCEG , 2)               
 528 :             UNG = UXG * CNX + UYG * CNY
 529 :             UTG = UXG * CTX + UYG * CTY
 530 : C              
 531 : C********** Son etat droite
 532 : C
 533 :             ROD = ROG
 534 :             PD = PG
 535 :             GAMD = GAMG
 536 :             UND = -1.0D0 * UNG
 537 :             UTD = UTG
 538 : C
 539 : C********** Les fractiones massiques
 540 : C
 541 :             DO I1 = 1, NESP
 542 :                FRAMAS.FRAMG(I1) =  MPYC.VPOCHA(NLCEG,I1)
 543 :                FRAMAS.FRAMD(I1) =  FRAMAS.FRAMG(I1)
 544 :             ENDDO
 545 : C     
 546 : C************* Fin cas mur
 547 : C
 548 :          ELSE
 549 : C
 550 : C************* Etat gauche
 551 : C
 552 :             ROG = MPROC.VPOCHA(NLCEG, 1)
 553 :             PG = MPPC.VPOCHA(NLCEG, 1)
 554 :             GAMG = MPGAMC.VPOCHA(NLCEG, 1)
 555 :             UXG = MPVITC.VPOCHA(NLCEG , 1)
 556 :             UYG = MPVITC.VPOCHA(NLCEG , 2)               
 557 :             UNG = UXG * CNX + UYG * CNY
 558 :             UTG = UXG * CTX + UYG * CTY
 559 : C
 560 : C********** Etat droit
 561 : C
 562 :             ROD = MPROC.VPOCHA(NLCED,1)
 563 :             PD = MPPC.VPOCHA(NLCED,1)
 564 :             GAMD = MPGAMC.VPOCHA(NLCED,1)
 565 : C
 566 : C************* On suppose qu'on a déjà controlle ROG, PG > 0
 567 : C              Si non il faut le faire!!!
 568 : C
 569 :             UXD = MPVITC.VPOCHA(NLCED,1)
 570 :             UYD = MPVITC.VPOCHA(NLCED,2)               
 571 :             UND = UXD * CNX + UYD * CNY
 572 :             UTD = UXD * CTX + UYD * CTY
 573 : C
 574 : C********** Les fractions massiques
 575 : C
 576 :             DO I1 = 1, NESP
 577 :                FRAMAS.FRAMG(I1) = MPYC.VPOCHA(NLCEG,I1)
 578 :                FRAMAS.FRAMD(I1) = MPYC.VPOCHA(NLCED,I1)
 579 :             ENDDO
 580 :          ENDIF
 581 : C
 582 : C************* Les MELVALs
 583 : C
 584 :          MELRO.VELCHE(1,NLCF) = ROG
 585 :          MELRO.VELCHE(3,NLCF) = ROD
 586 :          MELP.VELCHE(1,NLCF) = PG
 587 :          MELP.VELCHE(3,NLCF) = PD
 588 :          MELGAM.VELCHE(1,NLCF) = GAMG
 589 :          MELGAM.VELCHE(3,NLCF) = GAMD
 590 :          MELVUN.VELCHE(1,NLCF) = UNG
 591 :          MELVUN.VELCHE(3,NLCF) = UND
 592 :          MELVUT.VELCHE(1,NLCF) = UTG
 593 :          MELVUT.VELCHE(3,NLCF) = UTD
 594 :          MELVNX.VELCHE(1,NLCF) = CNX
 595 :          MELVNY.VELCHE(1,NLCF) = CNY
 596 :          MELT1X.VELCHE(1,NLCF) = CTX
 597 :          MELT1Y.VELCHE(1,NLCF) = CTY
 598 :          DO I1 = 1, NESP
 599 :             MELVA1 = MCHAMY.IELVAL(I1)
 600 :             MELVA1.VELCHE(1,NLCF) = FRAMAS.FRAMG(I1)
 601 :             MELVA1.VELCHE(3,NLCF) = FRAMAS.FRAMD(I1)
 602 :          ENDDO
 603 :       ENDDO            
 604 : C
 605 : C**** Desactivation des SEGMENTs
 606 : C
 607 :       SEGDES IPT1
 608 :       SEGDES IPT2
 609 : C
 610 :       SEGDES MPROC
 611 :       SEGDES MPVITC
 612 :       SEGDES MPPC
 613 :       SEGDES MPGAMC
 614 :       SEGDES MPNORM
 615 : C
 616 :       SEGDES MELRO
 617 :       SEGDES MELP
 618 :       SEGDES MELGAM
 619 :       SEGDES MELVUN
 620 :       SEGDES MELVUT
 621 :       SEGDES MELVNX
 622 :       SEGDES MELVNY
 623 :       SEGDES MELT1X
 624 :       SEGDES MELT1Y
 625 : C
 626 :       SEGDES MPYC
 627 :       DO I1 = 1, NESP
 628 :          MELVA1 = MCHAMY.IELVAL(I1)
 629 :          SEGDES MELVA1
 630 :       ENDDO
 631 :       SEGDES MCHAMY
 632 :       SEGSUP FRAMAS 
 633 : C
 634 : C**** Destruction du MELNTI correspondance local/global
 635 : C
 636 :       SEGSUP MLENT1
 637 : C
 638 :  9999 CONTINUE
 639 : C      
 640 :       RETURN                                                                    
 641 :       END
 642 : 
 643 : 
 644 : 
 645 :  
 646 :  
 647 :  
 648 :  
 649 :  

© Cast3M 2003 - All rights reserved.
Disclaimer