Download konjp4.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer