Download pre112.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer