Download konja7.eso

Back to the list

   1 : C KONJA7    SOURCE    MAGN      09/07/30    21:18:04     6458           
   2 :       SUBROUTINE KONJA7(ILINC,IRN,IUN,IPN,IGAMN,INORM,ICHPVO
   3 :      $     ,ICHPSU,IUINF,IUPRI,MELEMC,MELEFE,MELLIM,IMAT)
   4 : C
   5 : C************************************************************************
   6 : C
   7 : C PROJET            :  CASTEM 2000
   8 : C
   9 : C NOM               :  KONJA7
  10 : C
  11 : C DESCRIPTION       :  Voir KON12
  12 : C                      Calcul du jacobien du résidu pour la méthode de
  13 : C                      AUSM+low mach
  14 : C
  14 : C                      Cas 3D, gaz "calorically perfect"
  15 : C     
  16 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  17 : C      
  18 : C AUTEUR            :  A. BECCANTINI, SFME/LTMF
  19 : C
  20 : C************************************************************************
  21 : C
  22 : C
  23 : C APPELES (Outils
  24 : C          CASTEM)  :  
  25 : C      
  26 : C APPELES (Calcul)  :  
  27 : C
  28 : C************************************************************************
  29 : C
  30 : C ENTREES
  31 : C
  32 : C     ILINC  : liste des inconnues (pointeur d'un objet de type LISTMOTS)
  33 : C
  34 : C  1) Pointeurs des CHPOINT
  35 : C
  36 : C     IRN     : CHPOINT CENTRE  contenant la masse volumique ;
  37 : C
  38 : C     IUN     : CHPOINT CENTRE  contenant la vitesse ;
  39 : C
  40 : C     IPN     : CHPOINT CENTRE  contenant la pression ;
  41 : C
  42 : C     IGAMN   : CHPOINT CENTRE  contenant le gamma ;
  43 : C
  44 : C     INORM   : CHPOINT FACE    contenant les normales aux faces ;
  45 : C
  46 : C     ICHPOVO : CHPOINT VOLUME  contenant le volume
  47 : C
  48 : C     ICHPOSU : CHPOINT FACE    contenant la surface des faces
  49 : C
  50 : C     IUINF   : CHPOINT, one component, "cut-off velocity"
  51 : C               0 if no Bas MACH
  52 : C
  53 : C     IUPRI   : CHPOINT, one component, "minimum reference velocity"
  54 : C               0 if no BAs Mach
  55 : C     
  56 : C  2) Pointeurs de MELEME de la table DOMAINE
  57 : C
  58 : C     MELEMC  : MELEME 'CENTRE' du SPG des CENTRES
  59 : C
  60 : C     MELEFE  : MELEME 'FACEL' du connectivité Faces -> Elts
  61 : C
  62 : C     MELLIM  : MELEME SPG des conditions aux bords    
  63 : C
  64 : C SORTIES
  65 : C
  66 : C     IMAT    : pointeur de la MATRIK du jacobien du residu
  67 : C
  68 : C************************************************************************
  69 : C
  70 : C HISTORIQUE (Anomalies et modifications éventuelles)
  71 : C
  72 : C HISTORIQUE :
  73 : C      
  74 : C************************************************************************
  75 : C
  76 : C
  77 : C N.B.: On suppose qu'on a déjà controllé RO, P > 0
  78 : C                                         GAMMA \in (1,3)
  79 : C       Si non il faut le faire!!!
  80 : C
  81 : C************************************************************************
  82 : C               
  83 : C
  84 : C**** Variables de COOPTIO
  85 : C
  86 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  87 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  88 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  89 : C     &        ,IECHO,   IIMPI,  IOSPI
  90 : C     &        ,IDIM
  91 : C     &        ,MCOORD      
  92 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  93 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  94 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
  95 : C     &        ,NUCROU, IPSAUV
  96 : C
  97 :       IMPLICIT INTEGER(I-N)
  98 :       INTEGER ILINC, IRN,IUN,IPN,IGAMN,INORM,ICHPVO,ICHPSU
  99 :      &        , IMAT, IGEOMC, IGEOMF, IUINF, IUPRI
 100 :      &        , NFAC, NBSOUS, NBREF, NBELEM, NBNN, NRIGE, NMATRI, NKID
 101 :      &        , NKMT, NBME, NBEL,  MP, NP
 102 :      &        , IFAC, NGCF, NLCF, NGCG, NGCD, NLCG, NLCD
 103 :      &        , NLFL
 104 :       REAL*8 ROG, PG, UXG, UYG, UZG, GAMG, VOLG
 105 :      &       , ROD, PD, UXD, UYD, UZD, VOLD
 106 :      &       , SURF
 107 :      &       , FUNCEL
 108 :       REAL*8 WVEC_L(5), WVEC_R(5), NVECT(3), TVECT1(3),TVECT2(3) 
 109 :       REAL*8 JTL(5,5), JTR(5,5), V_INF
 110 :       REAL*8 C11,C12,C13,C21,C22,C23,C31,C32,C33,DET 
 111 :       REAL*8 ZC11,ZC12,ZC13,ZC21,ZC22,ZC23,ZC31,ZC32,ZC33
 112 :       CHARACTER*8 TYPE
 113 : C
 114 : C**** LES INCLUDES
 115 : C
 116 : -INC CCOPTIO
 117 : -INC SMCHPOI
 118 : -INC SMMATRIK
 119 : -INC SMELEME
 120 : -INC SMLMOTS
 121 : -INC SMLENTI
 122 :       POINTEUR MPRN.MPOVAL, MPUN.MPOVAL, MPPN.MPOVAL, MPGAMN.MPOVAL,
 123 :      &         MPNORM.MPOVAL, MPVOLU.MPOVAL, MPOVSU.MPOVAL
 124 :       POINTEUR MELEMC.MELEME, MELEMF.MELEME, MELEFE.MELEME,
 125 :      &         MELEDU.MELEME, MELLIM.MELEME
 126 :       POINTEUR MLENTC.MLENTI, MLENTF.MLENTI, MLELIM.MLENTI
 127 :       POINTEUR RR.IZAFM, RUX.IZAFM, RUY.IZAFM, RUZ.IZAFM, RRET.IZAFM,
 128 :      &     UXR.IZAFM, UXUX.IZAFM, UXUY.IZAFM, UXUZ.IZAFM, UXRET.IZAFM,
 129 :      &     UYR.IZAFM, UYUX.IZAFM, UYUY.IZAFM, UYUZ.IZAFM, UYRET.IZAFM,
 130 :      &     UZR.IZAFM, UZUX.IZAFM, UZUY.IZAFM, UZUZ.IZAFM, UZRET.IZAFM,
 131 :      &     RETR.IZAFM, RETUX.IZAFM, RETUY.IZAFM, RETUZ.IZAFM, 
 132 :      &     RETRET.IZAFM
 133 :       POINTEUR MLMINC.MLMOTS, MPUPRI.MPOVAL, MPUINF.MPOVAL
 134 : C
 135 : C**** KRIPAD pour la correspondance global/local des conditions limits
 136 : C
 136 :       CALL KRIPAD(MELLIM,MLELIM)
 137 : C     SEGACT MELLIM
 138 : C
 139 : C**** KRIPAD pour la correspondance global/local des centres
 140 : C
 140 :       CALL KRIPAD(MELEMC,MLENTC)
 141 : C
 142 : C     SEGACT MLENTC
 143 :       SEGACT MELEMC
 144 : C     
 145 :       SEGACT MELEFE
 146 : C
 146 :       CALL LICHT(ICHPSU,MPOVSU,TYPE,IGEOMF)
 146 :       CALL LICHT(INORM,MPNORM,TYPE,IGEOMF)
 146 :       CALL LICHT(ICHPVO,MPVOLU,TYPE,IGEOMC)
 147 : C
 148 : C**** LICHT active les MPOVALs en *MOD
 149 : C
 150 : C     i.e.
 151 : C
 152 : C     SEGACT MPOVSU*MOD
 153 : C     SEGACT MPOVNO*MOD
 154 : C     SEGACT MPVOLU*MOD
 155 : C
 156 :       MELEMF = IGEOMF
 156 :       CALL KRIPAD(MELEMF,MLENTF)
 157 : C
 158 : C     SEGACT MLENTF
 159 :       SEGACT MELEMF
 160 : C     
 160 :       CALL LICHT(IRN,MPRN,TYPE,IGEOMC)
 160 :       CALL LICHT(IPN,MPPN,TYPE,IGEOMC)
 160 :       CALL LICHT(IUN,MPUN,TYPE,IGEOMC)
 160 :       CALL LICHT(IGAMN,MPGAMN,TYPE,IGEOMC)
 161 : C
 162 : C     SEGACT MPRN*MOD
 163 : C     SEGACT MPPN*MOD
 164 : C     SEGACT MPUN*MOD
 165 : C     SEGACT MPGAMN*MOD
 166 : C     
 167 :       NFAC = MELEFE.NUM(/2)
 168 : C
 169 : C**** Maillage des inconnues primales
 170 : C
 171 :       NBSOUS = 0
 172 :       NBREF = 0
 173 :       NBELEM =  NFAC
 174 :       NBNN = 2
 175 : C
 176 :       SEGINI MELEDU
 177 : C     MELEPR = MELEDU
 178 : C
 179 : C**** MELEDU = 'SEG2'
 180 : C
 181 :       MELEDU.ITYPEL =  2
 182 : C      
 183 :       NRIGE = 7
 184 :       NMATRI = 1
 185 :       NKID = 9
 186 :       NKMT = 7
 187 : C
 188 :       SEGINI MATRIK
 189 :       IMAT = MATRIK
 190 :       MATRIK.IRIGEL(1,1) = MELEDU
 191 :       MATRIK.IRIGEL(2,1) = MELEDU
 192 : C
 193 : C**** Matrice non symetrique
 194 : C
 195 :       MATRIK.IRIGEL(7,1) = 2
 196 : C
 197 :       NBME = 25
 198 :       NBSOUS = 1
 199 :       SEGINI IMATRI
 200 :       MLMINC = ILINC
 201 :       SEGACT MLMINC
 202 :       MATRIK.IRIGEL(4,1) = IMATRI
 203 : C
 204 :       IMATRI.LISPRI(1) = MLMINC.MOTS(1)
 205 :       IMATRI.LISPRI(2) = MLMINC.MOTS(2)
 206 :       IMATRI.LISPRI(3) = MLMINC.MOTS(3)
 207 :       IMATRI.LISPRI(4) = MLMINC.MOTS(4)
 208 :       IMATRI.LISPRI(5) = MLMINC.MOTS(5)
 209 : C
 210 :       IMATRI.LISPRI(6)  = MLMINC.MOTS(1)
 211 :       IMATRI.LISPRI(7)  = MLMINC.MOTS(2)
 212 :       IMATRI.LISPRI(8)  = MLMINC.MOTS(3)
 213 :       IMATRI.LISPRI(9)  = MLMINC.MOTS(4)
 214 :       IMATRI.LISPRI(10) = MLMINC.MOTS(5)
 215 : C
 216 :       IMATRI.LISPRI(11) = MLMINC.MOTS(1)
 217 :       IMATRI.LISPRI(12) = MLMINC.MOTS(2)
 218 :       IMATRI.LISPRI(13) = MLMINC.MOTS(3)
 219 :       IMATRI.LISPRI(14) = MLMINC.MOTS(4)
 220 :       IMATRI.LISPRI(15) = MLMINC.MOTS(5)
 221 : C
 222 :       IMATRI.LISPRI(16) = MLMINC.MOTS(1)
 223 :       IMATRI.LISPRI(17) = MLMINC.MOTS(2)
 224 :       IMATRI.LISPRI(18) = MLMINC.MOTS(3)
 225 :       IMATRI.LISPRI(19) = MLMINC.MOTS(4)
 226 :       IMATRI.LISPRI(20) = MLMINC.MOTS(5)
 227 : C
 228 :       IMATRI.LISPRI(21) = MLMINC.MOTS(1)
 229 :       IMATRI.LISPRI(22) = MLMINC.MOTS(2)
 230 :       IMATRI.LISPRI(23) = MLMINC.MOTS(3)
 231 :       IMATRI.LISPRI(24) = MLMINC.MOTS(4)
 232 :       IMATRI.LISPRI(25) = MLMINC.MOTS(5)
 233 : C
 234 :       IMATRI.LISDUA(1) = MLMINC.MOTS(1)
 235 :       IMATRI.LISDUA(2) = MLMINC.MOTS(1)
 236 :       IMATRI.LISDUA(3) = MLMINC.MOTS(1)
 237 :       IMATRI.LISDUA(4) = MLMINC.MOTS(1)
 238 :       IMATRI.LISDUA(5) = MLMINC.MOTS(1)
 239 : C
 240 :       IMATRI.LISDUA(6)  = MLMINC.MOTS(2)
 241 :       IMATRI.LISDUA(7)  = MLMINC.MOTS(2)
 242 :       IMATRI.LISDUA(8)  = MLMINC.MOTS(2)
 243 :       IMATRI.LISDUA(9)  = MLMINC.MOTS(2)
 244 :       IMATRI.LISDUA(10) = MLMINC.MOTS(2)
 245 : C
 246 :       IMATRI.LISDUA(11) = MLMINC.MOTS(3)
 247 :       IMATRI.LISDUA(12) = MLMINC.MOTS(3)
 248 :       IMATRI.LISDUA(13) = MLMINC.MOTS(3)
 249 :       IMATRI.LISDUA(14) = MLMINC.MOTS(3)
 250 :       IMATRI.LISDUA(15) = MLMINC.MOTS(3)
 251 : C
 252 :       IMATRI.LISDUA(16) = MLMINC.MOTS(4)
 253 :       IMATRI.LISDUA(17) = MLMINC.MOTS(4)
 254 :       IMATRI.LISDUA(18) = MLMINC.MOTS(4)
 255 :       IMATRI.LISDUA(19) = MLMINC.MOTS(4)
 256 :       IMATRI.LISDUA(20) = MLMINC.MOTS(4)
 257 : C
 258 :       IMATRI.LISDUA(21) = MLMINC.MOTS(5)
 259 :       IMATRI.LISDUA(22) = MLMINC.MOTS(5)
 260 :       IMATRI.LISDUA(23) = MLMINC.MOTS(5)
 261 :       IMATRI.LISDUA(24) = MLMINC.MOTS(5)
 262 :       IMATRI.LISDUA(25) = MLMINC.MOTS(5)
 263 : C
 264 :       NBEL = NBELEM
 265 :       NBSOUS = 1
 266 :       NP = 2
 267 :       MP = 2
 268 :       SEGINI   RR  , RUX , RUY , RUZ, RRET ,
 269 :      &         UXR , UXUX , UXUY , UXUZ, UXRET ,
 270 :      &         UYR , UYUX , UYUY , UYUZ, UYRET ,
 271 :      &         UZR , UZUX , UZUY , UZUZ, UZRET ,
 272 :      &         RETR , RETUX , RETUY , RETUZ, RETRET 
 273 : C
 274 : C**** Duale = IMATRI.LISDUA(1) = 'RN'
 275 : C     Primale = IMATRI.LISPRI(1) = 'RN'
 276 : C     -> IMATRI.LIZAFM(1,1) = RR
 277 : C
 278 : C     Duale = IMATRI.LISDUA(2) = 'RN'
 279 : C     Primale = IMATRI.LISPRI(1) = 'RUXN'
 280 : C     -> IMATRI.LIZAFM(1,2) = RUX
 281 : C     ...
 282 : C
 283 :       IMATRI.LIZAFM(1,1) = RR
 284 :       IMATRI.LIZAFM(1,2) = RUX
 285 :       IMATRI.LIZAFM(1,3) = RUY
 286 :       IMATRI.LIZAFM(1,4) = RUZ
 287 :       IMATRI.LIZAFM(1,5) = RRET
 288 : C
 289 :       IMATRI.LIZAFM(1,6) = UXR
 290 :       IMATRI.LIZAFM(1,7) = UXUX
 291 :       IMATRI.LIZAFM(1,8) = UXUY
 292 :       IMATRI.LIZAFM(1,9) = UXUZ
 293 :       IMATRI.LIZAFM(1,10) = UXRET
 294 : C
 295 :       IMATRI.LIZAFM(1,11) = UYR
 296 :       IMATRI.LIZAFM(1,12) = UYUX
 297 :       IMATRI.LIZAFM(1,13) = UYUY
 298 :       IMATRI.LIZAFM(1,14) = UYUZ
 299 :       IMATRI.LIZAFM(1,15) = UYRET
 300 : C
 301 :       IMATRI.LIZAFM(1,16) = UZR
 302 :       IMATRI.LIZAFM(1,17) = UZUX
 303 :       IMATRI.LIZAFM(1,18) = UZUY
 304 :       IMATRI.LIZAFM(1,19) = UZUZ
 305 :       IMATRI.LIZAFM(1,20) = UZRET
 306 : C
 307 :       IMATRI.LIZAFM(1,21) = RETR
 308 :       IMATRI.LIZAFM(1,22) = RETUX
 309 :       IMATRI.LIZAFM(1,23) = RETUY
 310 :       IMATRI.LIZAFM(1,24) = RETUZ
 311 :       IMATRI.LIZAFM(1,25) = RETRET
 312 : C**************************************************************
 313 : C    Bas Mach
 314 : C**************************************************************
 314 :       CALL LICHT(IUPRI,MPUPRI,TYPE,IGEOMC)
 314 :       CALL LICHT(IUINF,MPUINF,TYPE,IGEOMC)
 315 : C**************************************************************
 316 :       DO IFAC = 1, NFAC, 1
 317 :          NGCF = MELEFE.NUM(2,IFAC)
 318 :          NLCF = MLENTF.LECT(NGCF)
 319 :          IF(NLCF .NE. IFAC)THEN
 320 :             WRITE(IOIMP,*) 'Il ne faut pas jouer avec la table domaine'
 320 :             CALL ERREUR(5)
 321 :             GOTO 9999
 322 :          ENDIF
 323 :          NLFL = MLELIM.LECT(NGCF)
 324 :          NGCG = MELEFE.NUM(1,IFAC)
 325 :          NGCD = MELEFE.NUM(3,IFAC)
 326 :          IF(NLFL .NE. 0)THEN
 327 : C
 328 : C********** The point belongs on BC -> No contribution to jacobian!
 329 : C
 330 :             MELEDU.NUM(1,IFAC) = NGCG
 331 :             MELEDU.NUM(2,IFAC) = NGCD
 332 :          ELSEIF(NGCG .NE. NGCD)THEN
 333 : C
 334 : C********** Les MELEMEs
 335 : C
 336 :             MELEDU.NUM(1,IFAC) = NGCG
 337 :             MELEDU.NUM(2,IFAC) = NGCD
 338 : C
 339 : C********** Les etats G et D
 340 : C
 341 :             NLCG = MLENTC.LECT(NGCG)
 342 :             NLCD = MLENTC.LECT(NGCD)
 343 : C
 344 :             ROG = MPRN.VPOCHA(NLCG,1)
 345 :             PG = MPPN.VPOCHA(NLCG,1)
 346 :             UXG = MPUN.VPOCHA(NLCG,1)
 347 :             UYG = MPUN.VPOCHA(NLCG,2)
 348 :             UZG = MPUN.VPOCHA(NLCG,3)
 349 :             GAMG = MPGAMN.VPOCHA(NLCG,1)
 350 :             VOLG = MPVOLU.VPOCHA(NLCG,1)
 351 : C-----------------------------------------
 352 :             WVEC_L(1)=ROG
 353 :             WVEC_L(2)=UXG
 354 :             WVEC_L(3)=UYG
 355 :             WVEC_L(4)=UZG
 356 :             WVEC_L(5)=PG
 357 : C-----------------------------------------            
 358 :             ROD = MPRN.VPOCHA(NLCD,1)
 359 :             PD = MPPN.VPOCHA(NLCD,1)
 360 :             UXD = MPUN.VPOCHA(NLCD,1)
 361 :             UYD = MPUN.VPOCHA(NLCD,2)
 362 :             UZD = MPUN.VPOCHA(NLCD,3)
 363 :             VOLD = MPVOLU.VPOCHA(NLCD,1)
 364 : c-----------------------------------------------------
 365 :             WVEC_R(1)=ROD
 366 :             WVEC_R(2)=UXD
 367 :             WVEC_R(3)=UYD
 368 :             WVEC_R(4)=UZD
 369 :             WVEC_R(5)=PD
 370 : C-----------------------------------------------------
 371 : C********** La normale G->D
 372 : C           La tangente
 373 : C-----------------------------------------------------     
 374 : c            SURF = MPOVSU.VPOCHA(NLCF,1)
 375 : c            CNX = MPNORM.VPOCHA(NLCF,7)
 376 : c            CNY = MPNORM.VPOCHA(NLCF,8)
 377 : c            CNZ = MPNORM.VPOCHA(NLCF,9)
 378 : cC
 379 : cC********** Cosinus directeurs de tangente 1 
 380 : cC
 381 : c            CT1X = MPNORM.VPOCHA(NLCF,1)
 382 : c            CT1Y = MPNORM.VPOCHA(NLCF,2)
 383 : c            CT1Z = MPNORM.VPOCHA(NLCF,3)
 384 : cC
 385 : cC********** Cosinus directeurs de tangente 2 
 386 : cC
 387 : c            CT2X = MPNORM.VPOCHA(NLCF,4)
 388 : c            CT2Y = MPNORM.VPOCHA(NLCF,5)
 389 : c            CT2Z = MPNORM.VPOCHA(NLCF,6)
 390 : C-------------------------------------------------------
 391 :             SURF = MPOVSU.VPOCHA(NLCF,1)
 392 :             NVECT(1) = MPNORM.VPOCHA(NLCF,7)
 393 :             NVECT(2) = MPNORM.VPOCHA(NLCF,8)
 394 :             NVECT(3) = MPNORM.VPOCHA(NLCF,9)
 395 : c-----------------------------------------------
 396 :             TVECT1(1) = MPNORM.VPOCHA(NLCF,1)
 397 :             TVECT1(2) = MPNORM.VPOCHA(NLCF,2)
 398 :             TVECT1(3) = MPNORM.VPOCHA(NLCF,3)
 399 : c----------------------------------------------
 400 :             TVECT2(1) = MPNORM.VPOCHA(NLCF,4)
 401 :             TVECT2(2) = MPNORM.VPOCHA(NLCF,5)
 402 :             TVECT2(3) = MPNORM.VPOCHA(NLCF,6)
 403 : C-------------------------------------------------------
 404 : C********** La contribution de Gauche
 405 : C--------------------------------------------------------
 406 :             V_INF=MAX(MPUINF.VPOCHA(NLCG,1),
 407 :      &              MPUINF.VPOCHA(NLCD,1),
 408 :      &              MPUPRI.VPOCHA(NLCG,1),
 409 :      &              MPUPRI.VPOCHA(NLCD,1))
 409 :             CALL JA3DBM(jtl,jtr,wvec_l,wvec_r,nvect,tvect1,tvect2,
 410 :      &                  gamg,v_inf)
 411 : C
 412 : C
 413 : C********** AB.AM(IFAC,IPRIM,IDUAL)
 414 : C           A = nom de l'inconnu duale (Ro,rUX,rUY,RET)
 415 : C           B = nom de l'inconnu primale (Ro,rUX,rUY,RET)
 416 : C           IPRIM = 1, 2  -> G, D
 417 : C           IDUAL = 1, 2  -> G, D
 418 : C           i.e.
 419 : C           A_IDUAL = AB.AM(IFAC,IPRIM,IDUAL) * B_IPRIM + ...
 420 : C
 421 : C
 422 : C********** Dual RN
 423 :             FUNCEL = SURF * JTL(1,1)
 424 :             RR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 425 :             RR.AM(IFAC,1,2) = FUNCEL / VOLD
 426 : C----------------------------------------------------
 427 :             FUNCEL = SURF * JTL(1,2)
 428 :             RUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 429 :             RUX.AM(IFAC,1,2) = FUNCEL / VOLD
 430 : C----------------------------------------------------
 431 :             FUNCEL = SURF * JTL(1,3)
 432 :             RUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 433 :             RUY.AM(IFAC,1,2) = FUNCEL / VOLD
 434 : C----------------------------------------------------
 435 :             FUNCEL = SURF * JTL(1,4)
 436 :             RUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 437 :             RUZ.AM(IFAC,1,2) = FUNCEL / VOLD
 438 : C----------------------------------------------------
 439 :             FUNCEL = SURF * JTL(1,5)
 440 :             RRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 441 :             RRET.AM(IFAC,1,2) = FUNCEL / VOLD
 442 : c----------------------------------------------------
 443 : C********** Dual RUXN
 444 : C----------------------------------------------------
 445 :             FUNCEL = SURF * JTL(2,1)
 446 :             UXR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 447 :             UXR.AM(IFAC,1,2) = FUNCEL / VOLD
 448 : C----------------------------------------------------
 449 :             FUNCEL = SURF * JTL(2,2)
 450 :             UXUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 451 :             UXUX.AM(IFAC,1,2) = FUNCEL / VOLD
 452 : C----------------------------------------------------
 453 :             FUNCEL = SURF * JTL(2,3)
 454 :             UXUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 455 :             UXUY.AM(IFAC,1,2) = FUNCEL / VOLD
 456 : C----------------------------------------------------
 457 :             FUNCEL = SURF * JTL(2,4)
 458 :             UXUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 459 :             UXUZ.AM(IFAC,1,2) = FUNCEL / VOLD
 460 : C----------------------------------------------------
 461 :             FUNCEL = SURF * JTL(2,5)
 462 :             UXRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 463 :             UXRET.AM(IFAC,1,2) = FUNCEL / VOLD
 464 : C----------------------------------------------------
 465 : C********** Dual RUYN
 466 : C----------------------------------------------------
 467 :             FUNCEL = SURF * JTL(3,1)
 468 :             UYR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 469 :             UYR.AM(IFAC,1,2) = FUNCEL / VOLD
 470 : C----------------------------------------------------
 471 :             FUNCEL = SURF * JTL(3,2)
 472 :             UYUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 473 :             UYUX.AM(IFAC,1,2) = FUNCEL / VOLD
 474 : C----------------------------------------------------
 475 :             FUNCEL = SURF * JTL(3,3)
 476 :             UYUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 477 :             UYUY.AM(IFAC,1,2) = FUNCEL / VOLD
 478 : C----------------------------------------------------
 479 :             FUNCEL = SURF * JTL(3,4)
 480 :             UYUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 481 :             UYUZ.AM(IFAC,1,2) = FUNCEL / VOLD
 482 : C----------------------------------------------------
 483 :             FUNCEL = SURF * JTL(3,5)
 484 :             UYRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 485 :             UYRET.AM(IFAC,1,2) = FUNCEL / VOLD
 486 : C----------------------------------------------------
 487 : C********** Dual RUZN
 488 : C----------------------------------------------------
 489 :             FUNCEL = SURF * JTL(4,1)
 490 :             UZR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 491 :             UZR.AM(IFAC,1,2) = FUNCEL / VOLD
 492 : C----------------------------------------------------
 493 :             FUNCEL = SURF * JTL(4,2)
 494 :             UZUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 495 :             UZUX.AM(IFAC,1,2) = FUNCEL / VOLD
 496 : C----------------------------------------------------
 497 :             FUNCEL = SURF * JTL(4,3)
 498 :             UZUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 499 :             UZUY.AM(IFAC,1,2) = FUNCEL / VOLD
 500 : C----------------------------------------------------
 501 :             FUNCEL = SURF * JTL(4,4)
 502 :             UZUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 503 :             UZUZ.AM(IFAC,1,2) = FUNCEL / VOLD
 504 : C----------------------------------------------------
 505 :             FUNCEL = SURF * JTL(4,5)
 506 :             UZRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 507 :             UZRET.AM(IFAC,1,2) = FUNCEL / VOLD
 508 : C----------------------------------------------------
 509 : C********** Dual RETN
 510 : C----------------------------------------------------
 511 :              FUNCEL = SURF * JTL(5,1)
 512 :             RETR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 513 :             RETR.AM(IFAC,1,2) = FUNCEL / VOLD
 514 : C-----------------------------------------------------
 515 :             FUNCEL = SURF * JTL(5,2)
 516 :             RETUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 517 :             RETUX.AM(IFAC,1,2) = FUNCEL / VOLD
 518 : C-----------------------------------------------------
 519 :             FUNCEL = SURF * JTL(5,3)
 520 :             RETUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 521 :             RETUY.AM(IFAC,1,2) = FUNCEL / VOLD
 522 : C-----------------------------------------------------
 523 :             FUNCEL = SURF * JTL(5,4)
 524 :             RETUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 525 :             RETUZ.AM(IFAC,1,2) = FUNCEL / VOLD
 526 : C-----------------------------------------------------
 527 :             FUNCEL = SURF * JTL(5,5)
 528 :             RETRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 529 :             RETRET.AM(IFAC,1,2) = FUNCEL / VOLD
 530 : C-----------------------------------------------------
 531 : C
 532 : C********** La contribution de D
 533 : C
 534 : c            CNX = -1.0D0 * CNX
 535 : c            CNY = -1.0D0 * CNY
 536 : c            CNZ = -1.0D0 * CNZ
 537 : c            CT1X = -1.0D0 * CT1X
 538 : c            CT1Y = -1.0D0 * CT1Y
 539 : c            CT1Z = -1.0D0 * CT1Z
 540 : c            CT2X = -1.0D0 * CT2X
 541 : c            CT2Y = -1.0D0 * CT2Y
 542 : c            CT2Z = -1.0D0 * CT2Z
 543 : C
 543 : c            CALL VLHJ4(ROD,UXD,UYD,UZD,PD,RETD,GAMD,CNX,CNY,CNZ,
 544 : c     &           CT1X,CT1Y,CT1Z,CT2X,CT2Y,CT2Z,
 545 : c     &           DFRO,DFRUN,DFRUT1,DFRUT2,DFRET)
 546 : C
 547 : C
 548 : C********** Dual RN
 549 : C------------------------------------------------------
 550 :             FUNCEL = SURF * JTR(1,1)
 551 :             RR.AM(IFAC,2,2) = FUNCEL / VOLD
 552 :             RR.AM(IFAC,2,1) = -FUNCEL / VOLG
 553 : C--------------------------------------------
 554 :             FUNCEL = SURF * JTR(1,2)
 555 :             RUX.AM(IFAC,2,2) = FUNCEL / VOLD
 556 :             RUX.AM(IFAC,2,1) = -FUNCEL / VOLG
 557 : C--------------------------------------------
 558 :             FUNCEL = SURF * JTR(1,3)
 559 :             RUY.AM(IFAC,2,2) = FUNCEL / VOLD
 560 :             RUY.AM(IFAC,2,1) = -FUNCEL / VOLG
 561 : C--------------------------------------------
 562 :             FUNCEL = SURF * JTR(1,4)
 563 :             RUZ.AM(IFAC,2,2) = FUNCEL / VOLD
 564 :             RUZ.AM(IFAC,2,1) = -FUNCEL / VOLG
 565 : C--------------------------------------------
 566 :             FUNCEL = SURF * JTR(1,5)
 567 :             RRET.AM(IFAC,2,2) = FUNCEL / VOLD
 568 :             RRET.AM(IFAC,2,1) = -FUNCEL / VOLG
 569 : C--------------------------------------------
 570 : C********** Dual RUXN
 571 : C--------------------------------------------  
 572 :             FUNCEL = SURF * JTR(2,1)
 573 :             UXR.AM(IFAC,2,2) = FUNCEL / VOLD
 574 :             UXR.AM(IFAC,2,1) = -FUNCEL / VOLG
 575 : C--------------------------------------------
 576 :             FUNCEL = SURF * JTR(2,2)
 577 :             UXUX.AM(IFAC,2,2) = FUNCEL / VOLD
 578 :             UXUX.AM(IFAC,2,1) = -FUNCEL / VOLG
 579 : C--------------------------------------------
 580 :             FUNCEL = SURF * JTR(2,3)
 581 :             UXUY.AM(IFAC,2,2) = FUNCEL / VOLD
 582 :             UXUY.AM(IFAC,2,1) = -FUNCEL / VOLG
 583 : C--------------------------------------------
 584 :             FUNCEL = SURF * JTR(2,4)
 585 :             UXUZ.AM(IFAC,2,2) = FUNCEL / VOLD
 586 :             UXUZ.AM(IFAC,2,1) = -FUNCEL / VOLG
 587 : C--------------------------------------------
 588 :             FUNCEL = SURF * JTR(2,5)
 589 :             UXRET.AM(IFAC,2,2) = FUNCEL / VOLD
 590 :             UXRET.AM(IFAC,2,1) = -FUNCEL / VOLG
 591 : C--------------------------------------------
 592 : C********** Dual RUYN
 593 : C--------------------------------------------
 594 :             FUNCEL = SURF * JTR(3,1)
 595 :             UYR.AM(IFAC,2,2) = FUNCEL / VOLD
 596 :             UYR.AM(IFAC,2,1) = -FUNCEL / VOLG
 597 : C--------------------------------------------
 598 :             FUNCEL = SURF * JTR(3,2)
 599 :             UYUX.AM(IFAC,2,2) = FUNCEL / VOLD
 600 :             UYUX.AM(IFAC,2,1) = -FUNCEL / VOLG
 601 : C--------------------------------------------
 602 :             FUNCEL = SURF * JTR(3,3)
 603 :             UYUY.AM(IFAC,2,2) = FUNCEL / VOLD
 604 :             UYUY.AM(IFAC,2,1) = -FUNCEL / VOLG
 605 : C--------------------------------------------
 606 :             FUNCEL = SURF * JTR(3,4)
 607 :             UYUZ.AM(IFAC,2,2) = FUNCEL / VOLD
 608 :             UYUZ.AM(IFAC,2,1) = -FUNCEL / VOLG
 609 : C--------------------------------------------
 610 :             FUNCEL = SURF * JTR(3,5)
 611 :             UYRET.AM(IFAC,2,2) = FUNCEL / VOLD
 612 :             UYRET.AM(IFAC,2,1) = -FUNCEL / VOLG
 613 : C--------------------------------------------
 614 : C********** Dual RUZN
 615 : C--------------------------------------------
 616 :             FUNCEL = SURF * JTR(4,1)
 617 :             UZR.AM(IFAC,2,2) = FUNCEL / VOLD
 618 :             UZR.AM(IFAC,2,1) = -FUNCEL / VOLG
 619 : C--------------------------------------------
 620 :             FUNCEL = SURF * JTR(4,2)
 621 :             UZUX.AM(IFAC,2,2) = FUNCEL / VOLD
 622 :             UZUX.AM(IFAC,2,1) = -FUNCEL / VOLG
 623 : C--------------------------------------------
 624 :             FUNCEL = SURF * JTR(4,3)
 625 :             UZUY.AM(IFAC,2,2) = FUNCEL / VOLD
 626 :             UZUY.AM(IFAC,2,1) = -FUNCEL / VOLG
 627 : C--------------------------------------------
 628 :             FUNCEL = SURF * JTR(4,4)
 629 :             UZUZ.AM(IFAC,2,2) = FUNCEL / VOLD
 630 :             UZUZ.AM(IFAC,2,1) = -FUNCEL / VOLG
 631 : C--------------------------------------------
 632 :             FUNCEL = SURF * JTR(4,5)
 633 :             UZRET.AM(IFAC,2,2) = FUNCEL / VOLD
 634 :             UZRET.AM(IFAC,2,1) = -FUNCEL / VOLG
 635 : C--------------------------------------------
 636 : C********** Dual RETN
 637 : C--------------------------------------------
 638 :             FUNCEL = SURF * JTR(5,1)
 639 :             RETR.AM(IFAC,2,2) = FUNCEL / VOLD
 640 :             RETR.AM(IFAC,2,1) = -FUNCEL / VOLG
 641 : C---------------------------------------------
 642 :             FUNCEL = SURF * JTR(5,2)
 643 :             RETUX.AM(IFAC,2,2) = FUNCEL / VOLD
 644 :             RETUX.AM(IFAC,2,1) = -FUNCEL / VOLG
 645 : C---------------------------------------------
 646 :             FUNCEL = SURF * JTR(5,3)
 647 :             RETUY.AM(IFAC,2,2) = FUNCEL / VOLD
 648 :             RETUY.AM(IFAC,2,1) = -FUNCEL / VOLG
 649 : C---------------------------------------------
 650 :             FUNCEL = SURF * JTR(5,4)
 651 :             RETUZ.AM(IFAC,2,2) = FUNCEL / VOLD
 652 :             RETUZ.AM(IFAC,2,1) = -FUNCEL / VOLG
 653 : C---------------------------------------------
 654 :             FUNCEL = SURF * JTR(5,5)
 655 :             RETRET.AM(IFAC,2,2) = FUNCEL / VOLD
 656 :             RETRET.AM(IFAC,2,1) = -FUNCEL / VOLG
 657 : C
 658 :          ELSE
 659 : C----------------------------------------------
 660 : C********** Murs (NGCG = NGCD)
 661 : C
 662 : C
 663 : C********** Les MELEMEs
 664 : C----------------------------------------------
 665 :             MELEDU.NUM(1,IFAC) = NGCG
 666 :             MELEDU.NUM(2,IFAC) = NGCD
 667 :             NLCG = MLENTC.LECT(NGCG)
 668 : C---------------------------------------------
 669 :             ROG = MPRN.VPOCHA(NLCG,1)
 670 :             PG = MPPN.VPOCHA(NLCG,1)
 671 :             UXG = MPUN.VPOCHA(NLCG,1)
 672 :             UYG = MPUN.VPOCHA(NLCG,2)
 673 :             UZG = MPUN.VPOCHA(NLCG,3)
 674 :             GAMG = MPGAMN.VPOCHA(NLCG,1)
 675 :             VOLG = MPVOLU.VPOCHA(NLCG,1)
 676 : C-------------------------------------------
 677 :             WVEC_L(1)=ROG
 678 :             WVEC_L(2)=UXG
 679 :             WVEC_L(3)=UYG
 680 :             WVEC_L(4)=UZG 
 681 :             WVEC_L(5)=PG
 682 : C--------------------------------------------
 683 : C********** La normale sortante
 684 : C-------------------------------------------
 685 : c            SURF = MPOVSU.VPOCHA(NLCF,1)
 686 : c            CNX = MPNORM.VPOCHA(NLCF,7)
 687 : c            CNY = MPNORM.VPOCHA(NLCF,8)
 688 : c            CNZ = MPNORM.VPOCHA(NLCF,9)
 689 : cC
 689 : c            CALL VLHJ6(ROG,UXG,UYG,UZG,PG,GAMG,CNX,CNY,CNZ,
 690 : c     &           DFRUN)
 691 : C---------------------------------------------------------
 692 :             SURF = MPOVSU.VPOCHA(NLCF,1)
 693 :             NVECT(1) = MPNORM.VPOCHA(NLCF,7)
 694 :             NVECT(2) = MPNORM.VPOCHA(NLCF,8)
 695 :             NVECT(3) = MPNORM.VPOCHA(NLCF,9)
 696 : c--------------------------------------------
 697 :             TVECT1(1) = MPNORM.VPOCHA(NLCF,1)
 698 :             TVECT1(2) = MPNORM.VPOCHA(NLCF,2)
 699 :             TVECT1(3) = MPNORM.VPOCHA(NLCF,3)
 700 : c----------------------------------------------
 701 :             TVECT2(1) = MPNORM.VPOCHA(NLCF,4)
 702 :             TVECT2(2) = MPNORM.VPOCHA(NLCF,5)
 703 :             TVECT2(3) = MPNORM.VPOCHA(NLCF,6)
 704 : C------- COEFFICIENTS ----------------------------
 705 :             C11=TVECT1(2)*TVECT2(3)-TVECT1(3)*TVECT2(2)
 706 :             C12=NVECT(2)*TVECT2(3)-TVECT2(2)*NVECT(3)
 707 :             C13=NVECT(2)*TVECT1(3)-TVECT1(2)*NVECT(3)
 708 : C---------------------------------
 709 :             C21=TVECT1(1)*TVECT2(3)-TVECT1(3)*TVECT2(1)
 710 :             C22=NVECT(1)*TVECT2(3)-TVECT2(1)*NVECT(3)
 711 :             C23=NVECT(1)*TVECT1(3)-TVECT1(1)*NVECT(3)
 712 : C---------------------------------
 713 :             C31=TVECT1(1)*TVECT2(2)-TVECT1(2)*TVECT2(1)
 714 :             C32=NVECT(1)*TVECT2(2)-TVECT2(1)*NVECT(2)
 715 :             C33=NVECT(1)*TVECT1(2)-TVECT1(1)*NVECT(2)
 716 :             DET=NVECT(1)*C11-NVECT(2)*C21+NVECT(3)*C31
 717 : C---------------------------------
 718 :             ZC11=-NVECT(1)*C11-TVECT1(1)*C12+TVECT2(1)*C13
 719 :             ZC12=-NVECT(2)*C11-TVECT1(2)*C12+TVECT2(2)*C13
 720 :             ZC13=-NVECT(3)*C11-TVECT1(3)*C12+TVECT2(3)*C13
 721 : C---------------------------------
 722 :             ZC21=NVECT(1)*C21+TVECT1(1)*C22-TVECT2(1)*C23
 723 :             ZC22=NVECT(2)*C21+TVECT1(2)*C22-TVECT2(2)*C23
 724 :             ZC23=NVECT(3)*C21+TVECT1(3)*C22-TVECT2(3)*C23
 725 : C---------------------------------
 726 :             ZC31=-NVECT(1)*C31-TVECT1(1)*C32+TVECT2(1)*C33
 727 :             ZC32=-NVECT(2)*C31-TVECT1(2)*C32+TVECT2(2)*C33
 728 :             ZC33=-NVECT(3)*C31-TVECT1(3)*C32+TVECT2(3)*C33
 729 : C-------------------------------------------------
 730 :             ROD = ROG
 731 :             PD = PG
 732 :             UXD = (ZC11*UXG+ZC12*UYG+ZC13*UZG)/DET
 733 :             UYD = (ZC21*UXG+ZC22*UYG+ZC23*UZG)/DET
 734 :             UZD = (ZC31*UXG+ZC32*UYG+ZC33*UZG)/DET
 735 :             VOLD = VOLG
 736 : C------------------------------------------------
 737 :             WVEC_R(1)=ROD
 738 :             WVEC_R(2)=UXD
 739 :             WVEC_R(3)=UYD
 740 :             WVEC_R(4)=UZD 
 741 :             WVEC_R(5)=PD
 742 : C-------------------------------------------
 743 : C********** La normale sortante
 744 : C-------------------------------------------
 745 :              V_INF=MAX(MPUINF.VPOCHA(NLCG,1),
 746 :      &              MPUPRI.VPOCHA(NLCG,1))
 746 :             CALL jw3Dbm(jtl,wvec_l,wvec_r,nvect,tvect1,tvect2,
 747 :      &                  gamg,v_inf)
 748 : C---------------------------------------------------------
 749 : C********** Dual RN
 750 : C---------------------------------------------------------
 751 :             RR.AM(IFAC,1,1) = 0.0D0
 752 :             RR.AM(IFAC,1,2) = 0.0D0
 753 : C---------------------------------------------------------
 754 :             RUX.AM(IFAC,1,1) = 0.0D0
 755 :             RUX.AM(IFAC,1,2) = 0.0D0
 756 : C---------------------------------------------------------
 757 :             RUY.AM(IFAC,1,1) = 0.0D0
 758 :             RUY.AM(IFAC,1,2) = 0.0D0
 759 : C---------------------------------------------------------
 760 :             RUZ.AM(IFAC,1,1) = 0.0D0
 761 :             RUZ.AM(IFAC,1,2) = 0.0D0
 762 : C--------------------------------------------------------
 763 :             RRET.AM(IFAC,1,1) = 0.0D0
 764 :             RRET.AM(IFAC,1,2) = 0.0D0
 765 : C---------------------------------------------------------
 766 : C********** Dual RUXN
 767 : C---------------------------------------------------------
 768 :             FUNCEL = SURF * JTL(2,1) 
 769 :             UXR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 770 :             UXR.AM(IFAC,1,2) = 0.0D0
 771 : C----------------------------------------------------
 772 :             FUNCEL = SURF * JTL(2,2)
 773 :             UXUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 774 :             UXUX.AM(IFAC,1,2) = 0.0D0
 775 : C----------------------------------------------------
 776 :             FUNCEL = SURF * JTL(2,3)
 777 :             UXUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 778 :             UXUY.AM(IFAC,1,2) = 0.0D0
 779 : C----------------------------------------------------
 780 :             FUNCEL = SURF * JTL(2,4)
 781 :             UXUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 782 :             UXUZ.AM(IFAC,1,2) = 0.0D0
 783 : C----------------------------------------------------
 784 :             FUNCEL = SURF * JTL(2,5)
 785 :             UXRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 786 :             UXRET.AM(IFAC,1,2) = 0.0D0
 787 : C----------------------------------------------------
 788 : C********** Dual RUYN
 789 : C----------------------------------------------------
 790 :             FUNCEL = SURF * JTL(3,1)
 791 :             UYR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 792 :             UYR.AM(IFAC,1,2) = 0.0D0
 793 : C----------------------------------------------------
 794 :             FUNCEL = SURF * JTL(3,2)
 795 :             UYUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 796 :             UYUX.AM(IFAC,1,2) = 0.0D0
 797 : C----------------------------------------------------
 798 :             FUNCEL = SURF * JTL(3,3)
 799 :             UYUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 800 :             UYUY.AM(IFAC,1,2) = 0.0D0
 801 : C----------------------------------------------------
 802 :             FUNCEL = SURF * JTL(3,4)
 803 :             UYUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 804 :             UYUZ.AM(IFAC,1,2) = 0.0D0
 805 : C----------------------------------------------------
 806 :             FUNCEL = SURF * JTL(3,5) 
 807 :             UYRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 808 :             UYRET.AM(IFAC,1,2) = 0.0D0
 809 : C-----------------------------------------------------
 810 : C********** Dual RUZN
 811 : C-----------------------------------------------------
 812 :             FUNCEL = SURF * JTL(4,1)
 813 :             UZR.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 814 :             UZR.AM(IFAC,1,2) = 0.0D0
 815 : C----------------------------------------------------
 816 :             FUNCEL = SURF * JTL(4,2)
 817 :             UZUX.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 818 :             UZUX.AM(IFAC,1,2) = 0.0D0
 819 : C----------------------------------------------------
 820 :             FUNCEL = SURF * JTL(4,3)
 821 :             UZUY.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 822 :             UZUY.AM(IFAC,1,2) = 0.0D0
 823 : C----------------------------------------------------
 824 :             FUNCEL = SURF * JTL(4,4)
 825 :             UZUZ.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 826 :             UZUZ.AM(IFAC,1,2) = 0.0D0
 827 : C----------------------------------------------------
 828 :             FUNCEL = SURF * JTL(4,5) 
 829 :             UZRET.AM(IFAC,1,1) = -1.0D0 * FUNCEL / VOLG
 830 :             UZRET.AM(IFAC,1,2) = 0.0D0
 831 : C----------------------------------------------------
 832 : C********** Dual RETN
 833 : C----------------------------------------------------
 834 :             RETR.AM(IFAC,1,1) = 0.0D0
 835 :             RETR.AM(IFAC,1,2) = 0.0D0
 836 : C----------------------------------------------------
 837 :             RETUX.AM(IFAC,1,1) = 0.0D0
 838 :             RETUX.AM(IFAC,1,2) = 0.0D0
 839 : C----------------------------------------------------
 840 :             RETUY.AM(IFAC,1,1) = 0.0D0
 841 :             RETUY.AM(IFAC,1,2) = 0.0D0
 842 : C----------------------------------------------------
 843 :             RETUZ.AM(IFAC,1,1) = 0.0D0
 844 :             RETUZ.AM(IFAC,1,2) = 0.0D0
 845 : C---------------------------------------------------
 846 :             RETRET.AM(IFAC,1,1) = 0.0D0
 847 :             RETRET.AM(IFAC,1,2) = 0.0D0
 848 : C---------------------------------------------------
 849 : C********** Dual RN
 850 : C---------------------------------------------------
 851 :             RR.AM(IFAC,2,2) = 0.0D0
 852 :             RR.AM(IFAC,2,1) = 0.0D0
 853 : C---------------------------------------------------
 854 :             RUX.AM(IFAC,2,2) = 0.0D0
 855 :             RUX.AM(IFAC,2,1) = 0.0D0
 856 : C---------------------------------------------------
 857 :             RUY.AM(IFAC,2,2) = 0.0D0
 858 :             RUY.AM(IFAC,2,1) = 0.0D0
 859 : C---------------------------------------------------
 860 :             RUZ.AM(IFAC,2,2) = 0.0D0
 861 :             RUZ.AM(IFAC,2,1) = 0.0D0
 862 : C---------------------------------------------------
 863 :             RRET.AM(IFAC,2,2) = 0.0D0
 864 :             RRET.AM(IFAC,2,1) = 0.0D0
 865 : C---------------------------------------------------
 866 : C********** Dual RUXN
 867 : C---------------------------------------------------
 868 :             UXR.AM(IFAC,2,2) = 0.0D0
 869 :             UXR.AM(IFAC,2,1) = 0.0D0
 870 : C---------------------------------------------------
 871 :             UXUX.AM(IFAC,2,2) = 0.0D0
 872 :             UXUX.AM(IFAC,2,1) = 0.0D0
 873 : C---------------------------------------------------
 874 :             UXUY.AM(IFAC,2,2) = 0.0D0
 875 :             UXUY.AM(IFAC,2,1) = 0.0D0
 876 : C---------------------------------------------------
 877 :             UXUZ.AM(IFAC,2,2) = 0.0D0
 878 :             UXUZ.AM(IFAC,2,1) = 0.0D0
 879 : C---------------------------------------------------
 880 :             UXRET.AM(IFAC,2,2) = 0.0D0
 881 :             UXRET.AM(IFAC,2,1) = 0.0D0
 882 : C---------------------------------------------------
 883 : C********** Dual RUYN
 884 : C---------------------------------------------------
 885 :             UYR.AM(IFAC,2,2) = 0.0D0
 886 :             UYR.AM(IFAC,2,1) = 0.0D0
 887 : C---------------------------------------------------
 888 :             UYUX.AM(IFAC,2,2) = 0.0D0
 889 :             UYUX.AM(IFAC,2,1) = 0.0D0
 890 : C---------------------------------------------------
 891 :             UYUY.AM(IFAC,2,2) = 0.0D0
 892 :             UYUY.AM(IFAC,2,1) = 0.0D0
 893 : C---------------------------------------------------
 894 :             UYUZ.AM(IFAC,2,2) = 0.0D0
 895 :             UYUZ.AM(IFAC,2,1) = 0.0D0
 896 : C---------------------------------------------------
 897 :             UYRET.AM(IFAC,2,2) = 0.0D0
 898 :             UYRET.AM(IFAC,2,1) = 0.0D0
 899 : C---------------------------------------------------
 900 : C********** Dual RUZN
 901 : C---------------------------------------------------
 902 :             UZR.AM(IFAC,2,2) = 0.0D0
 903 :             UZR.AM(IFAC,2,1) = 0.0D0
 904 : C---------------------------------------------------
 905 :             UZUX.AM(IFAC,2,2) = 0.0D0
 906 :             UZUX.AM(IFAC,2,1) = 0.0D0
 907 : C---------------------------------------------------
 908 :             UZUY.AM(IFAC,2,2) = 0.0D0
 909 :             UZUY.AM(IFAC,2,1) = 0.0D0
 910 : C---------------------------------------------------
 911 :             UZUZ.AM(IFAC,2,2) = 0.0D0
 912 :             UZUZ.AM(IFAC,2,1) = 0.0D0
 913 : C---------------------------------------------------
 914 :             UZRET.AM(IFAC,2,2) = 0.0D0
 915 :             UZRET.AM(IFAC,2,1) = 0.0D0
 916 : C---------------------------------------------------
 917 : C********** Dual RETN
 918 : C---------------------------------------------------
 919 :             RETR.AM(IFAC,2,2) = 0.0D0
 920 :             RETR.AM(IFAC,2,1) = 0.0D0
 921 : C---------------------------------------------------
 922 :             RETUX.AM(IFAC,2,2) = 0.0D0
 923 :             RETUX.AM(IFAC,2,1) = 0.0D0
 924 : C---------------------------------------------------
 925 :             RETUY.AM(IFAC,2,2) = 0.0D0
 926 :             RETUY.AM(IFAC,2,1) = 0.0D0
 927 : C---------------------------------------------------
 928 :             RETUZ.AM(IFAC,2,2) = 0.0D0
 929 :             RETUZ.AM(IFAC,2,1) = 0.0D0
 930 : C---------------------------------------------------
 931 :             RETRET.AM(IFAC,2,2) = 0.0D0
 932 :             RETRET.AM(IFAC,2,1) = 0.0D0
 933 : C---------------------------------------------------
 934 :          ENDIF
 935 :       ENDDO
 936 : C
 937 :       SEGDES MELEMC
 938 :       SEGDES MELEFE
 939 :       SEGDES MELEMF
 940 : C
 941 :       SEGDES MPOVSU
 942 :       SEGDES MPVOLU
 943 :       SEGDES MPNORM
 944 : C
 945 :       SEGDES MPRN
 946 :       SEGDES MPPN
 947 :       SEGDES MPUN
 948 :       SEGDES MPGAMN
 949 : C
 950 :       SEGDES MELEDU
 951 :       SEGDES MATRIK
 952 :       SEGDES IMATRI
 953 : C
 954 :       SEGDES   RR  , RUX , RUY , RUZ, RRET ,
 955 :      &         UXR , UXUX , UXUY , UXUZ, UXRET ,
 956 :      &         UYR , UYUX , UYUY , UYUZ, UYRET ,
 957 :      &         UZR , UZUX , UZUY , UZUZ, UYRET ,
 958 :      &         RETR , RETUX , RETUY , RETUZ, RETRET 
 959 :       
 960 :       SEGSUP MLENTC
 961 :       SEGSUP MLENTF
 962 :       SEGDES MLMINC
 963 :       SEGSUP MLELIM
 964 : C
 965 :       SEGDES MPUPRI
 966 :       SEGDES MPUINF
 967 :       IF(MELLIM .NE.0) SEGDES MELLIM
 968 : C      
 969 :  9999 CONTINUE
 970 :       RETURN
 971 :       END
 972 :  
 973 :  
 974 :  
 975 : 
 976 : 
 977 : 
 978 : 
 979 : 
 980 :  
 981 :  
 982 :  
 983 :  
 984 :  

© Cast3M 2003 - All rights reserved.
Disclaimer